欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

对react的一些看法和见解(实例)

程序员文章站 2022-07-23 18:33:27
渲染页面: react中将功能分割成组件,只关注组件状态(state,props)的变化。所有的操作都是在虚拟dom上,每当组件状态发生变化就生成新的dom数据,然后将上一次的d...

渲染页面:

react中将功能分割成组件,只关注组件状态(state,props)的变化。所有的操作都是在虚拟dom上,每当组件状态发生变化就生成新的dom数据,然后将上一次的dom跟本次dom进行比较,只将变化的部分更新到真实的dom上。

props和state的区别

state可以用来与用户交互,通过setState({})来更新和修改数据

父子组件的数据传递通过props传递,数据是单向传递的,自顶向下,不要尝试改变props

1.父组件->子组件 通过<Parent title={值}/> Children中通过this.props.title获取

2.子组件->父组件 仍是通过props传递,但传递的是函数,子组件调用该函数即可

生命周期

componentDidMount() 只执行一次,发生在组件已经插入到真实dom中,一般fetch请求写在该方法

componentWillReceiveProps(nextProps) props改变便执行

{某方法}

其中方法中不能使用this.props否则还是获取的上一次数据

注意当props未发生变化时也可能会执行该方法

可在nextProps!==this.props判断里使用该方法

若使用componentWillUpdate等生命周期函数可能会不断执行该方法原因是(在这个方法中你不可以使用setState,否则会触发一轮新的渲染,不断调用componentWillUpdate,陷入无限循环)

该方法通常用在props改变时

this

在react中使用类来声明组件

class 类名 extends React.Component

{  constructor(props){super(props);}

   handleClick(){};

   render(){return <button onClick={this.handleClick}}

}

在react中使用jsx语法所以所有的事件如click,blur首字母大写,

获取this的指向

1.方法若采用类方法,在constructor中写this.handleClick=this.handleClick.bind(this)或者在回调中

onClick={this.handleClick.bind(this)}或onClick={()=>this.handleClick()}

2.方法也可写成箭头函数形式即可,handleClick=()=>{}

方法传参

1.若使用箭头函数写方法,调用时this.方法即可不能写成this.方法()否则页面渲染时就会调用该方法

this.函数.bind(this,参数)

()=>this.函数(参数)

react之jsx语法

1.render中最外层只能有一个HTML标签包裹

2.表达式要用{}包裹

3.react设置组件样式

1.内联

<p style={{color:"gray"}}></p>

2.选择器

const pStyle={color:"gray"}

<p style={pStyle}></p>

3.对象

.pStyle{color:"gray"}

<p className="pStyle"></p>