React学习计划-React16--React基础(五)todoList案例、配置代理、消息订阅与发布
2023-12-23 10:31:35
一、todoList
案例相关知识点
- 拆分组件、实现静态组件,注意:
className、style
的写法 - 动态初始化列表,如何确定姜数据放在哪个组件的
state
中?- 某个组件使用:放在其自身的
state
中 - 某些组件使用:放在他们共同的父组件
state
中(官方称此操作为:状态提升)
- 某个组件使用:放在其自身的
- 关于父子之间通信:
- 【父组件】给【子组件】传递数据:通过
props
传递 - 【子组件】给【父组件】传递数据:通过
props
传递,要求是父提前给子传递一个函数
- 【父组件】给【子组件】传递数据:通过
- 注意
defaultChecked
和checked
区别,类似还有defaultValue
和value
- 状态在哪里,操作状态的方法就在哪里
案例:
-
文件目录结构:
-
App.js:
-
app.module.css:
-
Hearder
index.jsx
index.css
.search { width: calc(100% - 20px); padding: 10px; }
-
List
index.jsx
idnex.css
ul { list-style: none; margin: 0; padding: 0; }
-
Item
-
index.jsx
-
index.module.css
.li-content{ display: flex; justify-content: space-between; padding: 2px 5px; } .del { border: none; background: none; font-size: 18px; font-weight: bold; color: red; }
-
-
Footer:
-
index.jsx
-
index.module.css
.footer { display: flex; justify-content: space-between; align-items: center; height: 50px; padding: 10px 20px; border-top: 1px solid #ccc; } .count{ margin-left: 20px; } button { width: 150px; height: 40px; background-color: rgb(255, 0, 72); border-radius: 20px; color: #fff; cursor: pointer; }
-
8.运行效果
二、配置代理
-
代理到服务器的5000端口,前端端口是3000,请求时候http://localhost:3000/students 所有3000端口下没有的资源都会转发到http://localhost:5000,如果有则不转发
-
配置多个代理
三、消息订阅与发布(pubSub
)
- 安装**
yarn add pubsub-js
** - 接收组件
List/index.jsx
// 一挂载好就订阅消息
import PubSub from 'pubsub-js'
componentDidMount(){
this.pub = PubSub.subscribe('defClick', (_, data) => {
this.setState(data)
})
}
// 取消订阅
componentWillUnmount(){
PubSub.unsubscribe(this.pub)
}
- 发布信息
Hearder/index.jsx
import PubSub from 'pubsub-js'
PubSub.publish('defClick', {val})
文章来源:https://blog.csdn.net/qq_35940731/article/details/135164802
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!