"}]},{"id":276,"content":"指令v-el的作用是什么?","reason":"%3Cpre%3E%3Ccode%3E%E6%8F%90%E4%BE%9B%E4%B8%80%E4%B8%AA%E5%9C%A8%E9%A1%B5%E9%9D%A2%E4%B8%8A%E5%B7%B2%E5%AD%98%E5%9C%A8%E7%9A%84%20DOM%20%E5%85%83%E7%B4%A0%E4%BD%9C%E4%B8%BA%20Vue%20%E5%AE%9E%E4%BE%8B%E7%9A%84%E6%8C%82%E8%BD%BD%E7%9B%AE%E6%A0%87.%E5%8F%AF%E4%BB%A5%E6%98%AF%20CSS%20%E9%80%89%E6%8B%A9%E5%99%A8%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E6%98%AF%E4%B8%80%E4%B8%AA%20HTMLElement%20%E5%AE%9E%E4%BE%8B%2C%3C%2Fcode%3E%3C%2Fpre%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E","leftMsg":[]},{"id":277,"content":" 在Vue中使用插件的步骤","reason":"%3Cpre%3E%3Ccode%3E%E9%87%87%E7%94%A8ES6%E7%9A%84import%20...%20from%20...%E8%AF%AD%E6%B3%95%E6%88%96CommonJSd%E7%9A%84require()%E6%96%B9%E6%B3%95%E5%BC%95%E5%85%A5%E6%8F%92%E4%BB%B6%0A%E4%BD%BF%E7%94%A8%E5%85%A8%E5%B1%80%E6%96%B9%E6%B3%95Vue.use(%20plugin%20)%E4%BD%BF%E7%94%A8%E6%8F%92%E4%BB%B6%2C%E5%8F%AF%E4%BB%A5%E4%BC%A0%E5%85%A5%E4%B8%80%E4%B8%AA%E9%80%89%E9%A1%B9%E5%AF%B9%E8%B1%A1Vue.use(MyPlugin%2C%20%7B%20someOption%3A%20true%20%7D)%3C%2Fcode%3E%3C%2Fpre%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E","leftMsg":[]},{"id":278,"content":" 请列举出3个Vue中常用的生命周期钩子函数?","reason":"%3Cpre%3E%3Ccode%3Ecreated%3A%20%E5%AE%9E%E4%BE%8B%E5%B7%B2%E7%BB%8F%E5%88%9B%E5%BB%BA%E5%AE%8C%E6%88%90%E4%B9%8B%E5%90%8E%E8%B0%83%E7%94%A8%2C%E5%9C%A8%E8%BF%99%E4%B8%80%E6%AD%A5%2C%E5%AE%9E%E4%BE%8B%E5%B7%B2%E7%BB%8F%E5%AE%8C%E6%88%90%E6%95%B0%E6%8D%AE%E8%A7%82%E6%B5%8B%2C%20%E5%B1%9E%E6%80%A7%E5%92%8C%E6%96%B9%E6%B3%95%E7%9A%84%E8%BF%90%E7%AE%97%2C%20watch%2Fevent%E4%BA%8B%E4%BB%B6%E5%9B%9E%E8%B0%83.%20%E7%84%B6%E8%80%8C%2C%20%E6%8C%82%E8%BD%BD%E9%98%B6%E6%AE%B5%E8%BF%98%E6%B2%A1%E6%9C%89%E5%BC%80%E5%A7%8B%2C%20%24el%E5%B1%9E%E6%80%A7%E7%9B%AE%E5%89%8D%E8%BF%98%E4%B8%8D%E5%8F%AF%E8%A7%81%0Amounted%3A%20el%E8%A2%AB%E6%96%B0%E5%88%9B%E5%BB%BA%E7%9A%84%20vm.%24el%20%E6%9B%BF%E6%8D%A2%EF%BC%8C%E5%B9%B6%E6%8C%82%E8%BD%BD%E5%88%B0%E5%AE%9E%E4%BE%8B%E4%B8%8A%E5%8E%BB%E4%B9%8B%E5%90%8E%E8%B0%83%E7%94%A8%E8%AF%A5%E9%92%A9%E5%AD%90%E3%80%82%E5%A6%82%E6%9E%9C%20root%20%E5%AE%9E%E4%BE%8B%E6%8C%82%E8%BD%BD%E4%BA%86%E4%B8%80%E4%B8%AA%E6%96%87%E6%A1%A3%E5%86%85%E5%85%83%E7%B4%A0%EF%BC%8C%E5%BD%93%20mounted%20%E8%A2%AB%E8%B0%83%E7%94%A8%E6%97%B6%20vm.%24el%20%E4%B9%9F%E5%9C%A8%E6%96%87%E6%A1%A3%E5%86%85%E3%80%82%0Aactivated%3A%3Akeep-alive%E7%BB%84%E4%BB%B6%E6%BF%80%E6%B4%BB%E6%97%B6%E8%B0%83%E7%94%A8%3C%2Fcode%3E%3C%2Fpre%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E","leftMsg":[]},{"id":279,"content":"请简述下Vuex的原理和使用方法","reason":"%3Cdiv%3E%3Cdiv%3E%3Cimg%20src%3D%22http%3A%2F%2Fstatic.zybuluo.com%2Fleeahui424%2Felsh8vspbji82keetlv4ck67%2Fimage_1bouhnodibep5jgk5tpb2siim.png%22%20data-original-src%3D%22http%3A%2F%2Fstatic.zybuluo.com%2Fleeahui424%2Felsh8vspbji82keetlv4ck67%2Fimage_1bouhnodibep5jgk5tpb2siim.png%22%20alt%3D%22%E6%95%B0%E6%8D%AE%E5%8D%95%E5%90%91%E6%B5%81%E5%8A%A8%22%3E%3Cdiv%3E%E6%95%B0%E6%8D%AE%E5%8D%95%E5%90%91%E6%B5%81%E5%8A%A8%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A%3Cp%3E%E4%B8%80%E4%B8%AA%E5%BA%94%E7%94%A8%E5%8F%AF%E4%BB%A5%E7%9C%8B%E4%BD%9C%E6%98%AF%E7%94%B1%E4%B8%8A%E9%9D%A2%E4%B8%89%E9%83%A8%E5%88%86%E7%BB%84%E6%88%90%3A%20%3Cstrong%3EView%2C%20Actions%2CState%3C%2Fstrong%3E%2C%E6%95%B0%E6%8D%AE%E7%9A%84%E6%B5%81%E5%8A%A8%E4%B9%9F%E6%98%AF%E4%BB%8EView%20%3D%26gt%3B%20Actions%20%3D%26gt%3B%20State%20%3D%26gt%3BView%20%E4%BB%A5%E6%AD%A4%E8%BE%BE%E5%88%B0%E6%95%B0%E6%8D%AE%E7%9A%84%E5%8D%95%E5%90%91%E6%B5%81%E5%8A%A8.%E4%BD%86%E6%98%AF%E9%A1%B9%E7%9B%AE%E8%BE%83%E5%A4%A7%E7%9A%84%2C%20%E7%BB%84%E4%BB%B6%E5%B5%8C%E5%A5%97%E8%BF%87%E5%A4%9A%E7%9A%84%E6%97%B6%E5%80%99%2C%20%E5%A4%9A%E7%BB%84%E4%BB%B6%E5%85%B1%E4%BA%AB%E5%90%8C%E4%B8%80%E4%B8%AAState%E4%BC%9A%E5%9C%A8%E6%95%B0%E6%8D%AE%E4%BC%A0%E9%80%92%E6%97%B6%E5%87%BA%E7%8E%B0%E5%BE%88%E5%A4%9A%E9%97%AE%E9%A2%98.Vuex%E5%B0%B1%E6%98%AF%E4%B8%BA%E4%BA%86%E8%A7%A3%E5%86%B3%E8%BF%99%E4%BA%9B%E9%97%AE%E9%A2%98%E8%80%8C%E4%BA%A7%E7%94%9F%E7%9A%84.%3C%2Fp%3E%0A%3Cp%3EVuex%E5%8F%AF%E4%BB%A5%E8%A2%AB%E7%9C%8B%E4%BD%9C%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%89%80%E6%9C%89%E7%BB%84%E4%BB%B6%E7%9A%84%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83%2C%E6%88%91%E4%BB%AC%E5%B0%86%E6%89%80%E6%9C%89%E7%BB%84%E4%BB%B6%E4%B8%AD%E5%85%B1%E4%BA%AB%E7%9A%84State%E6%8A%BD%E7%A6%BB%E5%87%BA%E6%9D%A5%2C%E4%BB%BB%E4%BD%95%E7%BB%84%E4%BB%B6%E9%83%BD%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%E5%92%8C%E6%93%8D%E4%BD%9C%E6%88%91%E4%BB%AC%E7%9A%84%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83.%3C%2Fp%3E%0A%3Cdiv%3E%0A%3Cdiv%3E%0A%3Cdiv%3E%3C%2Fdiv%3E%0A%3Cdiv%20data-width%3D%22837%22%20data-height%3D%22560%22%3E%3Cimg%20data-original-src%3D%22%2F%2Fupload-images.jianshu.io%2Fupload_images%2F5318700-0f06ed280ca13a5e.png%22%20data-original-width%3D%22837%22%20data-original-height%3D%22560%22%20data-original-format%3D%22image%2Fpng%22%20data-original-filesize%3D%22110842%22%20cursor%3A%3D%22%22%20zoom-in%3B%22%3D%22%22%20src%3D%22%2F%2Fupload-images.jianshu.io%2Fupload_images%2F5318700-0f06ed280ca13a5e.png%3FimageMogr2%2Fauto-orient%2Fstrip%257CimageView2%2F2%2Fw%2F837%2Fformat%2Fwebp%22%3E%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A%3Cdiv%3EVuex%E5%8E%9F%E7%90%86%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A%3Cp%3E%E4%B8%8A%E5%9B%BE%E5%8F%AF%E4%BB%A5%E5%BE%88%E5%A5%BD%E7%9A%84%E8%AF%B4%E6%98%8EVuex%E7%9A%84%E7%BB%84%E6%88%90%2C%E4%B8%80%E4%B8%AA%E5%AE%9E%E4%BE%8B%E5%8C%96%E7%9A%84Vuex.Store%E7%94%B1state%2C%20mutations%E5%92%8Cactions%E4%B8%89%E4%B8%AA%E5%B1%9E%E6%80%A7%E7%BB%84%E6%88%90%3A%3C%2Fp%3E%0A%3Cul%3E%0A%3Cli%3Estate%E4%B8%AD%E4%BF%9D%E5%AD%98%E7%9D%80%E5%85%B1%E6%9C%89%E6%95%B0%E6%8D%AE%3C%2Fli%3E%0A%3Cli%3E%E6%94%B9%E5%8F%98state%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%E6%9C%89%E4%B8%94%E5%8F%AA%E6%9C%89%E9%80%9A%E8%BF%87mutations%E4%B8%AD%E7%9A%84%E6%96%B9%E6%B3%95%2C%E4%B8%94mutations%E4%B8%AD%E7%9A%84%E6%96%B9%E6%B3%95%E5%BF%85%E9%A1%BB%E6%98%AF%E5%90%8C%E6%AD%A5%E7%9A%84%3C%2Fli%3E%0A%3Cli%3E%E5%A6%82%E6%9E%9C%E8%A6%81%E5%86%99%E5%BC%82%E6%AD%A5%E7%9A%84%E6%96%B9%E6%B3%95%2C%E9%9C%80%E8%A6%81%E4%BA%9B%E5%9C%A8actions%E4%B8%AD%2C%20%E5%B9%B6%E9%80%9A%E8%BF%87commit%E5%88%B0mutations%E4%B8%AD%E8%BF%9B%E8%A1%8Cstate%E4%B8%AD%E6%95%B0%E6%8D%AE%E7%9A%84%E6%9B%B4%E6%94%B9.%3C%2Fli%3E%3C%2Ful%3E%3C%2Fdiv%3E%3Cbr%3E","leftMsg":[]}],"isUseGlobalCache":true,"isServerRender":true,"timestamp":1549724806188,"serverHost":"localhost","serverPort":"8012","fileHost":"","filePort":"","apiProxyPathKey":"/api/","fileProxyPathKey":"files/","loginRoute":"/login","useCount":1}

1.请谈谈Vue中的MVVM模式

MVVM全称是Model-View-ViewModel
Vue是以数据为驱动的,Vue自身将DOM和数据进行绑定,一旦创建绑定,DOM和数据将保持同步,每当数据发生变化,DOM会跟着变化。  ViewModel是Vue的核心,它是Vue的一个实例。Vue实例时作用域某个HTML元素上的这个HTML元素可以是body,也可以是某个id所指代的元素。
DOMListeners和DataBindings是实现双向绑定的关键。DOMListeners监听页面所有View层DOM元素的变化,当发生变化,Model层的数据随之变化;DataBindings监听Model层的数据,当数据发生变化,View层的DOM元素随之变化。


  • 用户: 一叶知秋 时间: 2019-03-13 14:57

    弟弟
  • 用户: 一叶知秋 时间: 2019-03-13 15:02

    MVVM 分为,model层、view层以及viewmodel层,比起传统的MVC模式,MVVM少了C层,也就是control层,它主要是用来对DOM进行操作的,在MVVM模式下,这部分的内容则不需要开发者自己处理,只需要交给VM层,既Vue的核心来处理,开发者则主要操作数据和视图。

2.v-show和v-if指令的共同点和不同点?

  • v-show指令是通过修改元素的displayCSS属性让其显示或者隐藏
    v-if指令是直接销毁和重建DOM达到让元素显示和隐藏的效果


  • 用户: 一叶知秋 时间: 2019-03-13 15:03

    v-show不会操作dom元素,仅通过CSS属性来实现,而v-if会销毁和创建dom元素来实现

3.如何让CSS只在当前组件中起作用?

将当前组件的<style>修改为<style scoped>


  • 用户: 七友。 时间: 2019-03-08 11:27

    .
  • 用户: 一叶知秋 时间: 2019-03-13 15:03

    <style scoped>

4.<keep-alive></keep-alive>的作用是什么?

<keep-alive></keep-alive> 包裹动态组件时,会缓存不活动的组件实例,主要用于保留组件状态或避免重新渲染。
大白话: 比如有一个列表和一个详情,那么用户就会经常执行打开详情=>返回列表=>打开详情…这样的话列表和详情都是一个频率很高的页面,那么就可以对列表组件使用<keep-alive></keep-alive>进行缓存,这样用户每次返回列表的时候,都能从缓存中快速渲染,而不是重新渲染



  • 用户: 一叶知秋 时间: 2019-03-13 15:07

    keep-alive主要功能是缓存,用它包裹动态组件,可以让页面在跳转时不会每次都向服务器发送请求重新渲染页面。若在全局使用的情况下要去除个别组件的缓存功能,在标签上加上exclude= “组件名”即可 ,这也是组件为何要起名的三个原因之一

5. Vue中引入组件的步骤?

欢迎使用,请输入内容...

1.采用ES6的import ... from ...语法或CommonJS的require()方法引入组件
2.对组件进行注册,代码如下
// 注册
Vue.component('my-component', {
template: '<div>A custom component!</div>'
})
3.使用组件<my-component></my-component>


  • 用户: 一叶知秋 时间: 2019-03-13 15:10

    <template> <div> <home></home> </div> </template> <script> import Home form './home/home' export default: { components:home } </script>

6.指令v-el的作用是什么?

提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标.可以是 CSS 选择器,也可以是一个 HTMLElement 实例,


    7. 在Vue中使用插件的步骤

    采用ES6的import ... from ...语法或CommonJSd的require()方法引入插件
    使用全局方法Vue.use( plugin )使用插件,可以传入一个选项对象Vue.use(MyPlugin, { someOption: true })


      8. 请列举出3个Vue中常用的生命周期钩子函数?

      created: 实例已经创建完成之后调用,在这一步,实例已经完成数据观测, 属性和方法的运算, watch/event事件回调. 然而, 挂载阶段还没有开始, $el属性目前还不可见
      mounted: el被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。
      activated::keep-alive组件激活时调用


        9.请简述下Vuex的原理和使用方法

        数据单向流动
        数据单向流动

        一个应用可以看作是由上面三部分组成: View, Actions,State,数据的流动也是从View => Actions => State =>View 以此达到数据的单向流动.但是项目较大的, 组件嵌套过多的时候, 多组件共享同一个State会在数据传递时出现很多问题.Vuex就是为了解决这些问题而产生的.

        Vuex可以被看作项目中所有组件的数据中心,我们将所有组件中共享的State抽离出来,任何组件都可以访问和操作我们的数据中心.

        Vuex原理

        上图可以很好的说明Vuex的组成,一个实例化的Vuex.Store由state, mutations和actions三个属性组成:

        • state中保存着共有数据
        • 改变state中的数据有且只有通过mutations中的方法,且mutations中的方法必须是同步的
        • 如果要写异步的方法,需要些在actions中, 并通过commit到mutations中进行state中数据的更改.