第十七天
2020-05-21 本文已影响0人
流觞小菜鸟
1.你怎么理解vue中的diff算法?
diff算法是虚拟DOM技术的必然产物:通过新旧虚拟DOM作对比(即diff),将变化的地方更新在真实DOM上;
diff过程整体遵循深度优先、同层比较的策略;两个节点之间比较会根据它们是否拥有子节点或者文本节点做不同操作;
2.对vue组件化的理解?
组件化开发能大幅提高应用开发效率、测试性、复用性等;
组件使用按分类有:页面组件、业务组件、通用组件
合理的划分组件,有助于提升应用性能;
3.Vue中key的作用和工作原理?
key的作用主要是为了高效的更新虚拟DOM,其原理是vue在patch过程中通过key可以精准判断两个节点是否是同一个,从而避免频繁更新不同元素,使得整个patch过程更加高效,减少DOM操作量,提高性能。
另外,若不设置key还可能在列表更新时引发一些隐蔽的bug。
4.VUE组件data为什么必须是函数?
Vue组件可能存在多个实例,如果使用对象形式定义data,则会导致它们共用一个data对象,那么状态变更将会影响所有组件实例
采用函数形式定义,在initData(初始数据)时会将其作为工厂函数返回全新的data对象,有效规避多实例之间状态污染问题