1-1 简单描述Vue.js的特性。
Vue.js的主要特性有:轻量级、数据绑定、应用指令、插件化开发。

1-2 Vue.js的安装有哪几种方法?
主要有3种方法:
第一种:直接下载Vue.js并使用<script>标签引入
第二种:采用引用外部CDN文件的方式
第三种:使用NPM方法进行安装

2-1 在Vue.js构造函数的选项对象中,最基本的选项有哪几个?
最基本的选项有:挂载元素、数据、方法、生命周期钩子函数等。

2-2 为HTML元素绑定属性需要使用什么指令?

需要使用v-bind指令

2-3 定义过滤器主要有哪两种方式?
第一种是应用Vue.js提供的全局方法Vue.filter()进行定义,第二种是应用选项对象中的filters选项进行定义。

2-4 Vue.js中的指令有什么作用?
指令可以在绑定表达式的值发生改变时,将这种数据的变化应用到DOM上。当数据变化时,指令会根据指定的操作对DOM进行修改,这样就无需手动去管理DOM的变化和状态,提高了程序的可维护性。
3-1 v-if指令和v-show指令在使用上有什么不同?
在进行v-if切换时,因为v-if中的模板可能包括数据绑定或子组件,所以Vue.js会有一个局部编译/卸载的过程。而在进行v-show切换时,仅发生了样式的变化。因此从切换的角度考虑,v-show消耗的性能要比v-if小。
在初始条件为false时,v-if本身什么都不会做,而使用v-show时,不管初始条件是真是假,DOM元素总是会被渲染。因此从初始渲染的角度考虑,v-if消耗的性能要比v-show小。

3-2 向对象中添加响应式属性可以使用哪几种方法?

可以使用全局方法Vue.set(object, key, value),或实例方法vm.$set(object, key, value),或Object.assign()方法。

3-3 指出Vue.js中变异方法和非变异方法的不同。
调用变异方法可以改变原始数组,并触发视图更新。而调用非变异方法不会改变原始数组,而是返回一个新的数组。

3-4 应用v-for指令可以遍历哪些类型的数据?
应用v-for指令可以遍历数组、对象或整数。
4-1 使用计算属性有什么作用?
当计算属性依赖的数据发生变化时,这个属性的值会自动更新,所有依赖该属性的数据绑定也会同步进行更新。

4-2 简述计算属性和方法之间的区别。
将相同的操作定义为一个方法,或者定义为一个计算属性,两种方式的结果完全相同。然而,不同的是计算属性是基于它们的依赖进行缓存的。使用计算属性时,每次获取的值是基于依赖的缓存值。当页面重新渲染时,如果依赖的数据未发生改变,使用计算属性获取的值就一直是缓存值。

4-3 对属性进行监听可以使用哪两种方式?
对属性进行监听可以定义在watch选项中,也可以使用实例方法vm.$watch()。

5-1 Vue.js中的样式绑定有哪两种方式?
Vue.js中的样式绑定包括class属性绑定和内联样式绑定两种方式。

5-2 简单描述一下将元素的class属性绑定为对象的三种形式
第一种是内联绑定,内联绑定即将元素的class属性直接绑定为对象的形式。第二种是非内联绑定,非内联绑定即将元素的class属性绑定的对象定义在data选项中。第三种是为元素的class属性绑定一个返回对象的计算属性。

5-3 应用数组语法进行style属性的绑定有几种形式?

有三种形式。

6-1 如果在内联语句中需要获取原生的DOM事件对象需要使用什么变量?
需要使用$event。

6-2 列举常用的两个事件修饰符并说明它们的作用。
.stop修饰符,该修饰符可以阻止事件继续传播。.prevent修饰符,该修饰符可以阻止浏览器的默认行为。

7-1 为复选框进行数据绑定分为两种情况,说出这两种情况的不同。
为复选框进行数据绑定有两种情况,一种是为单个复选框进行数据绑定,另一种是为多个复选框进行数据绑定。如果只有一个复选框,应用v-model绑定的是一个布尔值。如果有多个复选框,应用v-model绑定的是一个数组。

7-2 在单个复选框中,将值绑定到动态属性上需要应用复选框的哪两个属性?
需要应用true-value和false-value属性。

7-3 Vue.js为v-model指令提供了哪几个修饰符?
主要有lazy、number和trim。

8-1 注册自定义指令有几种方法,说出这几种方法的不同之处。
注册自定义指令有两种方法,一种是注册全局自定义指令,另一种是注册局部自定义指令。全局自定义指令可以在所有实例中进行调用,而局部自定义指令只能在当前实例中进行调用,而无法在其它实例中调用。

8-2 列举出3个指令定义对象中的钩子函数,并说明它们的作用。
bind:只调用一次,在指令第一次绑定到元素上时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化设置。
inserted:被绑定元素插入父元素时调用。
update:指令在bind之后立即以初始值为参数进行第一次调用,之后每次当绑定值发生变化时调用,接收的参数为新值和旧值。

8-3 列举自定义指令的绑定值的几种形式。
自定义指令的绑定值可以是数值常量、字符串常量或对象字面量。

9-1 说明全局组件和局部组件的区别。
全局组件可以在所有实例中使用,而局部注册的组件只能在其父组件中使用,而无法在其它组件中使用。

9-2 将父组件的数据传递给子组件需要使用哪个选项?
需要使用props选项。

9-3 简述Vue.js提供的Prop验证方式有哪几种。
基础类型检测、多种类型检测、参数必须的检测、参数具有默认值的检测、自定义验证函数的检测
9-4 怎样在一个组件的根元素上监听一个原生事件?
在一个组件的根元素上监听一个原生事件需要使用v-on的.native修饰符。

9-5 实现动态组件需要应用<component>元素的哪个属性?
需要应用<component>元素的is属性。

10-1 在元素显示的过渡中可以设置哪几个类名?
v-enter、v-enter-active、v-enter-to

10-2 在处理多元素过渡时需要使用哪两个指令?
v-if和v-else

10-3 简述Vue.js提供的两种过渡模式的区别。
in-out模式表示新元素先进行过渡,完成之后当前元素过渡离开;out-in模式表示当前元素先进行过渡,完成之后新元素过渡进入。

11-1 简述引入vue-router插件的几种方式。
第一种方式是直接下载并使用<script>标签引入,第二种是采用引用外部CDN文件的方式,第三种方式是使用NPM方法进行安装并引入。

11-2 在应用路由时如何在界面中同时展示多个视图?
在界面中同时展示多个视图,需要为每个视图(router-view)进行命名,通过名字进行对应组件的渲染。

11-3 在使用axios发送请求后的回调函数中,怎样访问当前Vue实例中的数据?
回调函数有独立的作用域,要想访问当前Vue实例中的数据需要在回调函数的后面添加.bind(this)。

12-1 简述webpack配置文件中的几个常用选项以及它们的作用。
mode:该选项用于配置开发项目使用的模式,根据指定的模式选择使用相应的内置优化。
entry:该选项用于配置要打包的入口文件。
output:该选项用于配置输出信息。
module:该选项用于对加载的模块进行配置。
plugins:该选项用于配置使用的插件。

12-2 在应用中处理.vue文件需要使用哪些依赖?
需要使用vue-loader加载器和vue-template-compiler工具。

12-3 简述使用@vue/cli工具创建项目的基本流程。
在命令提示符窗口中,输入命令vue create 项目名称,执行命令后,选择“Manually select features”来手动选择特性,通过键盘中的方向键上下移动,应用空格键进行选择,单击<Enter>键执行。

13-1 简述Vuex的组成部分以及它们的含义。
state用于存储项目中需要多组件共享的数据或状态;getters用于从state中派生出状态;mutations用于存储更改state状态的方法;actions可以通过提交mutations中的方法来改变状态,支持异步操作;modules是store的子模块,内容相当于store的一个实例。

13-2 Vuex中的action和mutation有什么区别?
actions需要通过提交mutations中的方法来改变状态,支持异步操作,而mutations用于存储更改state状态的方法,是唯一修改state的方式,但不支持异步操作。