一、Vue指令
- v-text:主要用来更新textContent,可以等同于JS的text属性。等价{{msg}};
- v-html:输出真正文本,像当于JS的innerHtml属性;
- v-pre:主要用来跳过这个元素和它的子元素编译过程。可以用来显示原始的Mustache标签。跳过大量没有指令的节点加快编译;
- v-cloak:用来保持在元素上直到关联实例结束时进行编译,会出现闪烁;
- v-once:关联的实例,只会渲染一次。之后的重新渲染,实例极其所有的子节点将被视为静态内容跳过,这可以用于优化更新性能;
- v-if:可以实现条件渲染;
- v-else:搭配v-if使用的,它必须紧跟在v-if或者v-else-if后面,否则不起作用;
- v-else-if:v-else-if充当v-if的else-if块,可以链式的使用多次。可以更加方便的实现switch语句;
- v-show:也是用于根据条件展示元素。和v-if不同的是,如果v-if的值是false,则这个元素被销毁,不在dom中。但是v-show的元素会始终被渲染并保存在dom中,它只是简单的切换css的dispaly属性;
注意:v-if有更高的切换开销,v-show有更高的初始渲染开销。因此,如果要非常频繁的切换,则使用v-show较好;如果在运行时条件不太可能改变,则v-if较好 ; - v-for:根据遍历数组来进行渲染;
- v-bind:动态的绑定一个或者多个特性。没有参数时,可以绑定到一个包含键值对的对象。常用于动态绑定class和style。以及href等;
- v-model:在表单上创建双向数据绑定,忽略所有表单元素的value、checked、selected特性的初始值。因为它选择Vue实例数据做为具体的值;
- v-on:用来监听dom事件,以便执行一些代码块。
二、v-model 原理解析
答:v-model本质上就是语法糖,即利用v-model绑定数据后,其实就是既绑定了数据,又添加了一个input事件监听。(更深入得需要自己去理解)
三、VueRouter路由访问方式
- this.$router.push():跳转到不同的url,但这个方法会向history栈添加一个记录,点击后退会返回到上一个页面。
- this.$router.replace():同样是跳转到指定的url,但是这个方法不会向history里面添加新的记录,点击返回,会跳转到上上一个页面。上一个记录是不存在的。
- this.$router.go(n):相对于当前页面向前或向后跳转多少个页面,类似 window.history.go(n)。n可为正数可为负数。正数返回上一个页面
四、 methods、watch 和 computer 的区别
- computer
对于页面中属性变动可以使用,对于任何复杂逻辑,你都应当使用计算属性,计算属性是基于它们的响应式依赖进行缓存的,主要当作属性来使用。 - methods 方法表示一个具体操作,主要书写业务逻辑。
- watch 一个对象,键是需要观察的表达式,值是对应的回调函数,主要用来监听某些待定数据的变化,从而进行某些具体的业务逻辑操作,可以看作computer 和 methods 合体。在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
以上是面试中的一些问题,可以说越简单的越不能忽视,往往败在最基础最简单的问题,如果以上有任何问题,我会及时更改的。