1 什么是mvvm模式
mvvm是Model-View-ViewModel缩写,是一种设计思想,model代表数据模型,可以在model中定义数据修改和操作的业务逻辑,view是相当于展示,viewmodel是同步view和model
在mvvm架构下,view和model之间没有直接的联系,是通过viewmodel进行交互,model也是如此,所以view和model数据变化会相互反应
viewmodel通过双向数据绑定把view和model连接了起来,所以开发者只需关注业务逻辑,不需要手动操作dom,不需要关注数据状态的同步问题
2 组件之间的传值
父组件和子组件的传值,父组件通过标签上面定义传值,子组件通过props方法接收数据
子组件向父组件传递数据,子组件通过$emit方法传递参数
3 路由跳转
声明式
编程式router.push('index')
4 vue配合webpack实现按需加载
初始状态 : import home from ' '
按需加载 const home=r=>require.ensure([],())=>r(require()))
5 vuex是什么,怎么使用,使用场景
vue在框架中进行状态管理,在main.js中引入store,注入。新建一个目录sotre,...export
应用场景:单页应用组件状态 音乐播放 登录状态 加入购物车
6 vuex的几种属性
state getter mutation action
state
a. vuex就是一个仓库,仓库里面放了很多对象, state是数据源存放地,对应于vue对象里面的data
b. state里面存放的数据式响应式的,vue组件从store中读取数据,如果store中的数据发生改变,以来这个数据的 组件也会发生更新
c. 通过mapState把全局的state和getters映射到当前组件的computed计算属性中
getter
a. 可以对state进行计算操作,就是store的计算属性
b. 虽然在组件内可以使用计算属性,但是getters可以多组间共用
c. 如果一个状态只在一个组件内使用,可以不用getters
mutation
action类似mutation,action提交的是mutation,而不是直接变更状态,action可以包含任意异步操作
不用vuex产生的问题
可维护性下降,修改数据需要维护多个地方
可读性下降,组件中的数据,看不出是从哪里来的
增加耦合,大量上传派发,耦合性大大增加
7 v-show和v-if指令的共同点和不同点
v-show指令是通过修改元素的display的css属性让其显示或者隐藏
v-if指令是直接销毁和重建dom达到让元素显示和隐藏的效果
8 如何让css只在当前组件中起作用
将当前的