# react-recome **Repository Path**: gekilyar/react-recome ## Basic Information - **Project Name**: react-recome - **Description**: just for learn the react - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-12-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 提交主干 - React组件的两种方式 类组件 函数式组件 - jsx 原理 - dom树 - 动态添加不同的className 就用第三方插件 classnames 使用方法 具体查询npm - styled-components 组件样式跟样式的其他几种定义方式 - 目录结构 构建方式 - props.children 代表组件之间定义的东西都可以传 这是我要传递的内容 - prop-types 类型检查 为了组件的健壮性 props传来数组 我是只想要个对象 就可以对传递的值做个预定义 如果不是就会检查类型 - 函数组件 检测方法 + 默认值 - ```js TodoHeader.propTypes = { title: PropTypes.string, desc: PropTypes.string, x:PropTypes.number.isRequired, y:PropTypes.number.isRequired } TodoHeader.defaultProps = { title: '今日待办项', desc: '今日事 今日毕', x:1, y:2 } ``` - 类组件 检测方法 + 默认值 - ```js static propTypes = { title: PropTypes.string, desc: PropTypes.string, x:PropTypes.number.isRequired, y:PropTypes.number.isRequired } static defaultProps = { title: '今日待办项', desc: '今日事 今日毕', x:1, y:2 } ``` - state 组件内部的状态 **只有类组件有state** - 终于明白了有状态组件跟无状态组件的具体使用场景 - 受控组件与非受控 组件 - 外部控制组件数据 受控 数据源统一不会更改 - 组件内部全是自身状态 - 半受控 一半一半 - 一层一层传递 `注意解构赋值` - setState 第一个参数有两种 一个是对象 一个是函数返回一个对象 是个异步操作 - ```js this.setState({ isLiked: !this.state.isLiked }) // 如果子组件很多 保险的方式使用上一次的state this.setState((preveState,props)=>{ console.log(preveState,props) return { isLiked: !preveState.isLiked } },()=>{ console.log(this.state.isLiked) }) ``` - 事件 给事件传参的几种方式 - bind(this) this指向问题 具体细看 不推荐