vue题库

为什么vue组件中data必须是一个函数?

组件是可复用的,当复用组件时,由于数据对象指向的是同一个data对象,这时候当在一个组件中修改data数据时,其它复用组件的data会同时被修改,如果data是一个函数的话,每次复用组件时返回的都是一个新的对象(object的实例),就不会出现一个组件修改data数据其它组件跟着变化的问题。

vue中v-if和v-show有什么区别?

 v-if 和 v-show 看起来似乎差不多,当条件不成立时,其所对应的标签元素都不可见,但是这两个选项是有区别的:
    1. v-if 是通过控制 dom 节点的存在与否来控制元素的显隐;v-show 是通过设置DOM元素的 display 样式,block 为显示,none 为隐藏;
    1. 编译过程:v-if 切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;v-show 只是简单的基于css切换;
    1. 编译条件:v-if 是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(编译被缓存?编译被缓存后,然后再切换的时候进行局部卸载); v-show 是在任何条件下(首次条件是否为真)都被编译,然后被缓存,而且DOM元素保留;
    1. 性能消耗:v-if 有更高的切换消耗;v-show 有更高的初始渲染消耗;

你可能感兴趣的:(vue题库)