1.组件通信的分类
1.1 父子组件通信 (使用props来实现)
-在父组件模板中,使用单项数据绑定将父组件数据赋值给子组件的自定义属性;
-子组件通过props属性来接收绑定在自己身上的自定义属性,这个属性在子组件模板中相当于全局变量,可以直接使用;
-子组件只可以使用接收到的数据,不可以更改, ->单项数据流的原因;
1.2 子父组件通信 (使用自定义事件 / $emit 实现)
在父组件模板中,使用自定义事件绑定父组件的方法
1.3 非父子组件通信 (ref链实现 bus事件总线实现)
1.4 路由通信
1.5 多组件状态共享
2.对VDOM diff算法和JSX的理解:
2.1 VDOM(虚拟DOM)
Vue性能很好的原因:是因为Vue使用了VDOM;
VDOM性能高的原因:VDOM操作减少了真实DOM的操作,大大缩短了时间,减少内存消耗;
VDOM又是什么:VDOM是一个js对象模型,用于模拟真实DOM结构;
VDOM的渲染过程如下:
-通过数据第一次生成VDOM,
-通过render函数将VDOM渲染成真实DOM,
-当数据改变时,重新生成VDOM,
-通过diff算法重新对比新旧VDOM,获得patch补丁对象,
-根据patch补丁对象再次渲染为真实DOM;
2.2 diff算法:
-diff算法来源于后端,应用于比较两个文件的不同,会生成一个补丁对象,记录内容的不同,
-diff算法是同层级比较,不能跨层级,
-diff是用js 递归返回实现;
2.3 jsx
jsx是由什么组成:由js + xml 组成 ,jsx是对js语法的扩展;