天天看点

React

React(用于构建用户界面的JavaScript库)

<code>React</code>是一个将数据渲染为HTML视图的开源JavaScript库。

采用组件化开发模式,使用声明式编程,而不是命令式编程,提高了开发效率以及组件的复用率。

在<code>React Native</code>中可以使用<code>React</code>进行移动端 <code>Android</code> 和 <code>ios</code> 应用的开发。

使用虚拟DOM+<code>diffing</code>算法,尽量减少与真实DOM的交互。

两者都是做组件化的,整体的功能都类似,但是它们的设计思路是有很多的不同的,使用React和Vue主要是理解它们设计思路的不同。

虚拟DOM的本质就是 <code>Object</code>类型的一般对象。

虚拟DOM比较<code>轻</code>,真实DOM比较<code>重</code>,虚拟DOM是React内部使用的DOM。

创建虚拟DOM用 <code>React.createElement( 标签名,标签属性,标签的内容 )</code> 方法

参数:

标签名。

标签属性。

标签内容。

渲染虚拟DOM用 <code>React.render( jsx模板,容器(挂载点),callback() )</code> 方法

jsx模板。

容器(挂载点)。

callback() 回调函数:当内容放到页面后触发的回调函数。

XML是早期时一种用于存储和传输数据的文件格式 如今被JSON代替

JSX

JavaScript

采用JavaScript方式创建虚拟DOM时不需要用到Babel转换,因为未使用到JSX语法。

定义虚拟DOM时不加双引号。

样式的类名指定不要用<code>class</code>,而是用<code>className</code>。

内联样式,需要用花括号键值表达的形式去写,在遇到双单词的属性需要使用驼峰命名法。

标签中混入<code>JS表达式</code>时,需要使用花括号。

只有一个根标签。

标签必须闭合

标签首字母

若是小写字母开头,则将标签转为HTML的同名元素,若HTML中无同名元素,则报错。

若是大写字母开头,则将标签转化为虚拟DOM组件,React就去渲染对应的组件,若组件未定义,则报错。

函数式组件

需要注意的地方是: 创建函数式组件时,render函数的第一个参数JSX模板 不再是变量名,而是加上函数式组件名,因为是react调用了该函数拿到返回的值,值得注意的是组件首字母需要大写。 函数式组件内部的this的指向不再是window,而是undefined,这是因为函数式组件的JSX模板经过Babel的转换,而Babel内部采用了严格模式进行编译,严格模式下不允许函数内部的this指向window。

类式组件

......后续待更新

继续阅读