1、虚拟DOM:降低了算法复杂度,提升速度,主要是diff computation
2、组件(快速复用)
3、学会了新建组件export和引用组件import
注意:组件的return函数里面返回的HTML节点只能是一个!
4、JSX内置表达式
三元表达式
动态值放在{}中
关于正确解析html显示在页面中:
方法一:使用unicode转码
方法二:使用dangerouslySetInnerHTML = {{__html:传入的变量}} 不推荐,可能存在XSS攻击
5、页面的生命周期:
生命周期1 生命周期26、State属性(页面组件自身的属性)
StateState变化时只会局部刷新
State只会体现在当前的class中,不会污染到其他的class中。
7、Props属性(对于组件来说属于外来属性)
8、数据与事件的双向绑定
父页面---->子页面:通过props属性
子页面---->父页面:通过对子页面的props属性绑定事件
父页面---->子页面---->子页面:{...this.props}
9、可复用组件
组件的propTypes:设置props属性值的类型(可参考官方文档)
isRequired:必须的参数
组件的defaultProps:默认的props属性值
10、组件的Refs(操作DOM)
方法一:
原生形式获得节点后,操作节点的方法:ReactDOM.findDOMNode(节点变量)
方法二:
设置ref属性
使用this.refs.节点变量
注意:不要在render里或者之前调用refs
11、Mixins(组件之间公用方法)
ES6暂不支持,需要安装react-mixin@2的包
12、react样式:(用js来写css样式)
(1)内联样式:
*将css样式写入一个变量中,在标签里的style中引入该变量(只对内联起作用)
**外部css文件,通过className调用对应的类(全局污染)
缺点:不能使用动画、hover等伪类
内联样式中的内置表达式:(计算改变样式)
三元表达式写在内联css里面(利用state的变化)
(2)CSS模块化
这里附加一个tip:删除node_modules文件夹,快速初始化package.json里面包含的包:直接在对应文件夹下面使用npm install 命令
这里需要两个新的包:
cnpm install --save style-loader css-loader
安装好了以后在webpack.config.js中增加配置:
{ test: /.css$/, loader: 'style-loader!css-loader' }
有需要的话可以安装:babel-plugin-react-html-attrs(用于解决class和className的命名冲突等),安装好了以后在webpack.config.js中增加配置plugins: ['react-html-attrs']
使用:在组件中require进来css文件
优点:默认local,避免全局污染和命名冲突
可以修改为global,这样全局都可以用
(3)CSS---->JSX(因为后期学习react native不能用css)
有一个在线转换工具http://staxmanade.com/CssToReact/
13、Ant Design样式框架:(阿里出的)
14、React Router插件:React页面跳转问题
没有进行页面刷新,通过hashHistory前进后退。
参数传递:this.props.params.参数名
最后:有问题查看官方文档!
网友评论