每天五道前段面试题

一.vuex有哪几种属性

 有五种,分别是State , Getter , Mutation , Action , Module (就是mapAction)

1. state:vuex的基本数据,用来存储变量

2. geeter:从基本数据(state)派生的数据,相当于state的计算属性

3. mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。

4. action:和mutation的功能大致相同,不同之处在于 ==》1. Action 提交的是 mutation,而不是直接变更状态。 2. Action 可以包含任意异步操作。

5. modules:模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。

 二.vuex是什么?怎么使用?哪种功能场景使用它?

 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。简单来说就是:应用遇到多个组件共享状态时,使用vuex。

场景:多个组件共享数据或者是跨组件传递数据时vuex的流程

 页面通过mapAction异步提交事件到action。action通过commit把对应参数同步提交到mutation,mutation会修改state中对应的值。最后通过getter把对应值跑出去,在页面的计算属性中,通过,mapGetter来动态获取state中的值

 三.开发中常用的指令有哪些?

1.v-model:一般用于表达输入(输入框),很轻松的实现表单控件和数据的双向绑定
2.v-html:更新元素的innerHTML
3.v-show和v-if:条件渲染
4.v-on:click:可以简写为@click,@绑定一个事件,如果事件触发了,就可以指定事件的处理函数
5.v-bind:当表达式的值改变时,将其产生的连带影响,响应式地作用于DOM语法
6.v-bind:title='msg'简写:title='msg'

 四.MVVM

M- model ,model 表示数据模型,也可以在model中定义数据修改和操作的业务逻辑
V- view,view表示视图,它负责将数据模型转换为视图展示出来
VM- viewmodel,viewmodel是一个同步view和model的对象,连接view和model,用于监听数据模型的改变和控制视图行为

 五.vue.js的两个核心是什么?

1.数据驱动:
Object.defineProperty和存储器属性:getter和setter(只兼容IE9及以上版本)。可称为基于依赖收集的观测机制,核心是VM,即viewmodel,保证数据和视图的一致性。
2.组件系统:
能够把页面抽象成多个相对独立的模块,实现代码重用,提高开发效率和代码质量,使代码易于维护。

上一篇:reducer模块化拆分中定义state和action的写法


下一篇:简述react、redux、react-redux、redux-saga、dva之间的关系