vue

76 阅读2分钟

1、vue优势有哪些?

1、轻量级框架 2、简单易学 3、双向数据绑定 4、组件化 5、视图,数据,结构分离 6、虚拟DOM 7、运行速度更快

2、v-if和v-show的区别。

共同点: 都能控制元素的显示和隐藏; 不同点: 实现的本质不同。v-show的本质是通过控制元素css中的display设置为none,控制隐藏,只会编译一次;v-if是动态的向DOM树内添加或者删除DOM元素,若初始值为false,就不会编译了。而且v-if不停的销毁和创建比较消耗性能。 总结:如果要频繁切换某节点,使用v-show(切换开销比较小,初始开销较大)。如果不需要频繁切换某节点使用v-if(初始渲染开销较小,切换开销比较大)。

3、vue父组件与子组件如何相互传递数据?

父--->子:通过props 子--->父:通过emit方法。例:this.emit方法。例:this.emit("handlerChange",param1,param2...);

4、如何让css只在当前组件中使用?

在组件中的style前面加上scoped。

5、为什么使用key?

用 key 管理可复用的元素。Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。需要使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点。 作用主要是为了高效的更新虚拟DOM。

6、v-modal的使用。

v-model用于表单数据的双向绑定,其实它就是一个语法糖,这个背后就做了两个操作: v-bind绑定一个value属性; v-on指令给当前元素绑定input事件。

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

答:因为JavaScript的特性所导致,在component中,data必须以函数的形式存在,不可以是对象。   组建中的data写成一个函数,数据以函数返回值的形式定义,这样每次复用组件的时候,都会返回一份新的data,相当于每个组件实例都有自己私有的数据空间,它们只负责各自维护的数据,不会造成混乱。而单纯的写成对象形式,就是所有的组件实例共用了一个data,这样改一个全都改了。

8、Vue中双向数据绑定是如何实现的?

vue 双向数据绑定是通过 数据劫持 结合 发布订阅模式的方式来实现的, 也就是说数据和视图同步,数据发生变化,视图跟着变化,视图变化,数据也随之发生改变; 核心:关于VUE双向数据绑定,其核心是 Object.defineProperty()方法。

9、第一次页面加载会触发哪几个钩子?

beforeCreate, created, beforeMount, mounted

10、vue生命周期

20190107221323124.png