react进阶-jsx和ref
2018-04-23 本文已影响1人
xhbisme
JSX:
1.jsx其实就是一个语法糖,在react中,jsx的原理如下:
![](https://img.haomeiwen.com/i11691158/d3c0534d59419c88.png)
![](http://upload-images.jianshu.io/upload_images/11691158-9b6be23d8950ddd4.png)
聪明的同学会发现这两张图片编译后的结果有所不同,当我们的jsx遇到以小写字母开头的标签时,它会把标签翻译成一个字符串,让react认为这可以渲染成一个真实的dom。在遇到大写字母开头的标签时,不做改动,让react意识到这是个组件,还可以继续往下挖掘其可以被渲染成真实dom的节点。这里有一个形象的比喻--拆箱子。
2.组件在jsx中的写法:
1) <A />
2) <A.B />
3) const SpecificStory=components[props.storyType]; <SpecificStory />
3.自动反转译
![](http://upload-images.jianshu.io/upload_images/11691158-8dae6903728d7c3f.png)
4.自动去空格
![](http://upload-images.jianshu.io/upload_images/11691158-7718fd592ce8090c.png)
5.支持return[<li>a</li>,<li>b</li>]
6.// 为属性指定默认值:
A.defaultProps={name:'A'};
REF:
在react中,使用ref可以轻松获得dom节点。
创建ref:
1.将被淘汰:
2.中流砥柱:
{this.myRef = ref}}>3.react16发布了新的,创建ref的方法:
![](http://upload-images.jianshu.io/upload_images/11691158-3a977314c5437493.png)