Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ES6对象的结构赋值的重命名 、react的生命周期 #36

Open
guowei55555 opened this issue Jun 1, 2021 · 1 comment
Open

Comments

@guowei55555
Copy link

No description provided.

@Dogtiti Dogtiti added the Cbayel label Jun 1, 2021
@guowei55555 guowei55555 changed the title 1、ES6对象的结构赋值的重命名 2、react的生命周期 ES6对象的结构赋值的重命名 、react的生命周期 Jun 1, 2021
@yinyinnnn
Copy link

ES6对象的解构赋值的重命名:别名

在解构赋值过程中,如果想要对象中的属性名和变量名不一致,就可以给变量取别名

在对象的解构赋值过程中,还是会先找到同名的属性,然后在赋值给对应的变量别名

let { foo:haha } = { foo:'aaa'}
console.log(haha)
console.log(foo)

上述的代码中,foo是匹配模式,haha才是变量。真正被赋值的是变量haha,而不是foo

react的生命周期

QQ图片20210603104309

挂载时:constructor ->render ->componentDidMount
更新阶段:render -> componentDidUpdate
卸载时:componentWillUnmount

constructor

构造函数用于:

  1. 初始化state

  2. 为事件执行函数绑定实例

    注:如果不需要初始化数据或者绑定实例则不用创建构造函数

render

react中最重要且必须实现的方法,常用来:

  1. 创建虚拟dom
  2. 进行diff算法
  3. 更新dom
注:不能更改state

componentDidMount

  1. componentDidMount会在挂载后立即调用,常用来加载请求数据进行初始化
  2. 可以直接调用setState(),但是会因为额外渲染导致性能问题

componentDidUpdate

  1. componentDidUpdate在更新后会被立即调用,第一次渲染时不会被调用
  2. 可以直接调用setState(),但是必须包裹在条件语句中,否则会导致死循环

componentWillUnmount

  1. 在组件卸载和销毁之前调用,完成所有的清理和销毁工作
  2. 不能调用setState()

@Dogtiti Dogtiti removed the Cbayel label May 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants