1.库与框架的区别是什么?
      1,库用三个字概括就是小而巧,只提供了特定的API,可以很方便地从一个库切换到另外一个库,而代码无需做很很大的修改;
      2,框架用三个字概括就是大而全,框架提供了一整套的解决方案,故在某个项目中间想从一个框架转到另一个框架,代码需要做很大的改动。

2.Vue.js 的核心特性有哪些?
  1,数据驱动视图
 - 数据变化会自动更新到对应元素中,无需手动操作DOM

          - 对于输入框等可输入的元素,可设置双向数据绑定

          - Vue.js的数据驱动视图,是基于M-V-VM模型实现

          - MVVM  是一种软件开发思想

             - Model:  代表数据

             - View :  代表视图模板

             - ViewModel: 代表业务逻辑处理的代码
  2,组件化开发

3.什么是数据驱动视图?

          数据变化会自动更新到对应元素中,无需手动操作DOM

          - 对于输入框等可输入的元素,可设置双向数据绑定

          - Vue.js的数据驱动视图,是基于M-V-VM模型实现

          - MVVM  是一种软件开发思想

             - Model:  代表数据

             - View :  代表视图模板

             - ViewModel: 代表业务逻辑处理的代码

4.MVVM 模型各部分含义是什么,在 Vue.js 中分别对应哪些功能?
  - MVVM  是一种软件开发思想

             - Model:  代表数据  ,数据层,后端传递数据。

             - View :  代表视图模板 将数据模型转化展现出来。

             - ViewModel: 代表业务逻辑处理的代码,是连接model与view的一个桥梁。

5.el 选项的作用是什么,可以设置哪几种值?
        用于选取一个DOM元素作为Vue实例的挂载目标。  id选择器,class选择器和DOM元素。

6.设置在 data 中的数据有什么特点?

   用于储存vue实例需要使用的数据,响应式数据(当数据发生变化的时候,视图中的数据会自动发生变化)。

7.Vue.set() 可以解决什么问题?

   做了一个修改,但是在点击保存时,修改的值没有渲染到页面上,可以值已经被修改。
        这时需要使用this.$set()方法来修改值,因为此方法修改值后,会重新渲染页面

8.插值表达式内有哪些书写要求?

    模板中可以通过插值表达式为元素进行动态内容设置,其中不能在内容以外进行设置,并且在内容部分不能输入语句。

9.methods 的作用是什么?

   给vue定义方法。

10.谈谈你对指令的理解。
   vue指令就是HTML自定义的属性,通过指令控制视图效果,指令以v- 形式开头。

11.常用的内容处理指令有哪些?
  v-once 该指令使用元素内部的插值表达式,只能生效一次;
  v-text 该指令可以将元素内容整体替换为指定的纯文本数据;
  v-html 该指令将元素内容整体替换为指定的HTML文本。

12.常用的属性绑定操作有哪些?
  v-bind用于动态绑定HTML属性,可以与class 和style属性共同绑定使用。

13.v-for 指令的注意点?
  v-for是属于渲染指令,遍历数据渲染结构,常对数组和对象均可使用。

14.v-if 与 v-show 的区别?
   v-if 和 v-show都属于渲染指令。
   v-if 可以根据条件控制元素的创建与移除,该指令的值为布尔值,若为false,则不会创建,反之,会被创建。
   v-show 用于控制元素的显示与隐藏,适用显示与隐藏,当频繁切换时,使用v-show指令。
     其指令若为true,则元素就会显示,反之会被隐藏。

15.如何绑定事件?
  事件函数调用函数,事件函数参数传递,事件修饰符方法,按键修饰符以及自定义按键修饰符。

16.谈谈你对双向数据绑定的理解?
      我们使用v-model=‘msg’ ,msg定义在数据属性data中,以此来实现双向数据绑定。
在vue中,我们使用数据驱动视图,即data=>view,但使用v-model后,视图层更新后的msg可以再传给data,
即view=>data,这个时候更新后的data又能驱动其它视图,即data=>view_other。
总的来说,数据流的走向是data=>view=>data=>view_other。可见数据的走向是双向的,
因此v-model实现了双向数据绑定的功能。需要特别注意的是,v-model只能在包含value属性的标签中使用。

17.如何设置自定义指令?
自定义指令可以分为自定义局部指令和自定义全局指令。
指令是通过module.directive API来注册的。module.directive接受的是一个规范化的名字和工厂函数,
这个工厂函数返回一个包含不同配置的对象,这个对象用来告诉$compile服务如何进行下一步处理。

18.过滤器通常用来做什么?
  过滤器常常用于进行文本内容格式的处理,可以在插值表达式和v-bind中使用。

19.methods 与 computed 有哪些区别?
    computed是属性调用,而methods是函数调用。
     computed带有缓存功能,而methods没有。
    computed其实是既可以当做属性访问也可以当做方法访问。
    computed的由来有一个重要原因,就是防止文本插值中逻辑过重,导致不易维护。

20.如何设置侦听器?
  只需要在 vm 对象上挂载 watch 属性,然后监听 data 中的数据即可。