组件

    技术2022-07-11  100

    组件

    对具有一定独立功能的数据与方法的封装,对外暴露接口,有利于代码功能的复用,且不用担心冲突问题。

    函数式组件

    函数的名称就是组件的名称函数的返回值就是组件要渲染的内容

    类式组件

    组件类必须继承 React.Component组件类必须有 render 方法 // 类式组件写法的必要条件 import React, {Component} from 'react'; import FriendList from './FriendList'; // 1.组件类必须继承 React.Component class App extends Component{ // 2.组件类必须有 render 方法 render(){ // 3.render方法的return后定义组件的内容 return (<div><FriendList /></div>) } } export default App;

    props传参

    父组件

    class FriendList extends Component{ render(){ return ( <div className="friend-list"> {/* 插值 可以写表达式,函数调用,也可以写函数的定义 */} { // 返回一个数组 Object.keys // map 为数组方法 循环数组中的属性名 // 列表循环创建分组 Object.keys(data).map((item,index)=>{ return ( // 传参 <DL key = {index} name = {item} //传递属性名 value = {data[item]} //传递属性值 /> ) }) } </div> ) } } export default FriendList;

    子组件接收参数

    class DL extends Component{ render(){ // 接收父组件的参数 console.log(this.props); let {title,list} = this.props.value; return ( <div className="friend-group"> <dt>{title}</dt> { list.map((item,index)=>{ return <dd key={index}>{item.name}</dd> }) } </div> ) } } export default DL

    state

    state 组件自身状态 setState多个 setState 合并

    注意: React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。

    点击事件

    问题:在render外面定义函数,this指向是undefend class App extends Component{ // 自身数据,相当于data state = { nub:20, name:"路飞", sex:"男" } fn(){ console.log(this) } render(){ console.log(this.state); let {nub} = this.state; return (<div> <p>姓名:{this.state.name}</p> <p>性别:{this.state.sex}</p> <p>年龄:{this.state.nub}</p> <button onClick={this.fn}>长一岁</button> </div>) } } export default App; 解决方法:1.箭头函数 <button onClick={ ()=>{ console.log(this) } }>长一岁</button> 2.把箭头函数定义在render外面,在事件上调用 fn = ()=>{ console.log(this); // React 里,只需更新组件的 state, // 然后根据新的 state 重新渲染用户界面(不要操作 DOM)。 this.setState({ nub:this.state.nub+1 }) }

    props 与 state 的区别

    state 的主要作用是用于组件保存、控制、修改自己的可变状态,在组件内部进行初始化,也可以在组件内部进行修改,但是组件外部不能修改组件的 state props 的主要作用是让使用该组件的父组件可以传入参数来配置该组件,它是外部传进来的配置参数,组件内部无法控制也无法修改 state 和 props 都可以决定组件的外观和显示状态。通常,props 做为不变数据或者初始化数据传递给组件,可变状态使用 state

    Processed: 0.009, SQL: 9