ref的使用
这是react对render
中元素提供的一个属性,专门用来标志mount
后的元素
这个回调属性会在组件安装后立即执行。
ref字符
|
|
|
|
ref函数
当它作为函数时,默认参数就是一个dom的对象
bind和this
官方文档中react用bind很多;
但看他们喜欢在构造函数如此: this.handleToggleClick = this.handleToggleClick.bind(this)
我喜欢用箭头函数(es6特性,this指向定义处)直接调用
JSX嵌入
|
|
动态组件
|
|
html不接受字符
|
|
jsx插入函数
|
|
react map组件时
- 一个元素的key最好是这个元素在列表中拥有的一个独一无二的字符串(所以不同数组列表可以用相同key)
- 元素的key只有在它和它的兄弟节点对比时才有意义(换句话说必须在map函数里面的组件里)
- key只对react可见,要用其值,请将作为属性再加个传入
计算属性名
|
|
控制多个元素
这个是看了官方的例子,感觉太好用了,笔记下来
|
|
ref用于子组件
|
|
突变数据
通过shouldComponentUpdate
来判断是否渲染组件,有个React.PureComponent
可提供继承,它默认填写了shouldComponentUpdate
函数,但是里面只是一些浅比较(对像就算被添加属性,对象的地址还是没变,导致比较为true);
深层数据则不行。
所以官方建议是Immutable
来配合使用
老式的创建类和es6创建类
https://reactjs.org/docs/react-without-es6.html
Context
这个特性在官方网站上被说明为不建议使用.
优点:
跨越组件层次传递,这简直太好了,不用像props
那样一个一个传,直接跨代传都可以
缺点:
这也是官方举例,当state或者setState 被调用,getChildContext也会被调用,生成新的context;
但shouldComponentUpdate
返回的 false 会 block 住 context,导致没有更新
另外context相当一个全局变量,难以追溯修改源.
虽然官方不建议用,但看网上建议把它当个全局固定值用,避免修改来躲避状态更新失败.
protals
当组件需要”跳出”容器(对话框,提示框,overflow:hidden
z-index
等),此时使用此属性