好程序员web前端培训分享vue面试题,为了帮助大家顺利通过面试,准备了这篇文章给准备参加的小伙伴们今天的web前端面试,让我们一起来看看吧! 1.什么是MVVM? MVVM是Model-View-ViewModel的缩写。MVVM是一种设计理念。Model层代表数据模型,数据修改和操作的业务逻辑也可以定义在Model中;View代表UI组件,负责将数据模型转换成UI显示,ViewModel是同步View和Model的对象。 MVVM架构下,View和Model之间没有直接联系,而是通过ViewModel。Model和ViewModel的交互是双向的,所以View数据的变化会同步到Model,Model数据的变化会立即反映到View上。 ViewModel通过双向数据绑定连接View层和Model层,View 和Model之间的同步是完全自动的,不需要人为干预,所以开发者只需要关注业务逻辑,而不是它无需手动操作DOM,无需关注数据状态的同步。复杂数据状态的维护完全由MVVM管理。 二、mvvm和mvc的区别?它和其他框架(jquery)有什么区别?适合哪些场景? mvc和mvvm其实区别不大。一切都与设计思维有关。主要原因是mvc中的Controller进化成了mvvm中的viewModel。mvvm主要解决mvc中大量DOM操作,降低页面渲染性能,拖慢加载速度,影响用户体验。 区别:Vue是数据驱动的,用数据来展示视图层,而不是节点操作。 场景:数据操作多的场景,更方便 三、Vue有什么优势? 低耦合。视图(View)可以独立于模型而改变和修改。ViewModel可以绑定到不同的“视图”。当View改变时,Model可以保持不变,当Model改变时,View也可以保持不变。 可重用性。您可以将一些视图逻辑放在ViewModel中,让许多视图重用该视图逻辑。 自主研发。开发人员可以专注于业务逻辑和数据开发(ViewModel),设计师可以专注于页面设计。 可测试的。接口一直很难测试,但现在可以为ViewModel编写测试。 4。组件之间的值传递? 父组件子组件传值组件传数据 子组件通过$emit方法传参 5.路由间跳转 Declarative(标签跳转)Programmatic(js跳转) 6.在vue.cli中如何使用自定义组件?你遇到过什么问题吗? 第一步:在components目录下创建你的组件文件(indexPage.vue),脚本必须exportdefault{} 第二步:在需要使用的页面(组件)中导入:importindexPagefrom'@/components/indexPage.vue' 第三步:注入到vue子组件的components属性中,components:{indexPage} 第四步:在模板视图视图中使用, ,为例如,命名为indexPage,使用时,index-page 七、vue如何实现按需加载及Webpack设置 Webpack提供了require.ensure()来实现按需加载。以前路由是通过import导入的,现在改为const定义。 不按需加载页面导入方式:importhomefrom'../../common/home.vue' 按需加载导入页面:consthome=r=>require.ensure([],()=>r(require('../../common/home.vue'))) 八、vuex面试相关 (一)什么是vuex?如何使用它?什么样的功能场景使用它? vue框架中的状态管理。在main.js中引入store和inject。创建一个新的目录存储,.....导出。场景包括:单页应用程序中组件之间的状态。音乐播放、登录状态、加入购物车 (2)vuex有哪些属性?A、Vuex是一个仓库,仓库里有很多对象。state是存储数据源的地方,对应一般Vue对象中的data B,state中存储的数据是响应式的。Vue组件从商店中读取数据。如果store中的数据发生变化,则依赖于这个数据组件也会更新 C。它通过mapState将全局状态和getters映射到当前组件的计算属性。 vuex的Getter特性 A。它是Store B的计算属性。虽然计算属性也可以在组件中使用,但是getter可以在多个组件之间复用 C。如果一个状态只在一个组件中使用,可以使用getters vuex的Mutation特性 Action类似于mutation,不同的是:Action提交mutation,而不是直接改变state;Action可以包含任何异步操作。 (3)不使用Vuex会有什么问题? 可维护性将降低。如果要修改数据,需要维护三个地方; 可读性会降低,因为一个组件里面的数据基本上是看不到从哪里来的; 增加耦合度,大量的上传和分发会大大增加耦合度。最初,Vue使用Component来降低耦合。现在这么用,有悖于组件化的初衷。 9.v-show和v-if指令的共同点和区别 v-show指令是修改元素的displayCSS属性,使其显示或隐藏; v-if指令直接销毁和重建DOM,达到显示和隐藏元素的效果; 使用v-show会节省更多的性能开销;当只需要显示或隐藏一次时,使用v-if更合理。 10。如何让CSS只作用于当前组件 修改当前组件的
