1.vuex的有哪些属性?用处是什么?
State:定义了应用状态的数据结构,可以在这里设置默认的初始状态。
Getter:允许组件从 Store 中获取数据,mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性。
Mutation:是唯一更改 store 中状态的方法,且必须是同步函数。
Action:用于提交 mutation,而不是直接变更状态,可以包含任意异步操作。
Module:允许将单一的 Store 拆分为多个 store 且同时保存在单一的状态树中。
2.写出vue中的所有的生命周期函数,分别有什么作用
beforecreate:实例已经初始化,但不能获取DOM节点。(没有data,没有el)
created:实例已经创建,仍然不能获取DOM节点。(有data,没有el)
载入阶段:
beforemount:模板编译完成,但还没挂载到界面上。(有data,有el)
mounted:编译好的模板已挂载到页面中(数据和DOM都已经渲染出来)。
更新阶段:
beforeupdate:数据发生变化立即调用,此时data中数据是最新的,但页面上数据仍然是旧的(检测到数据更新时,但DOM更新前执行)。
updated:更新结束后执行,此时data中的值和页面上的值都是最新的。
销毁阶段:
beforedestroy:当要销毁vue实例时,在销毁之前执行。
destroy:在销毁vue实例时执行。
actived 在keep-alive中使用,缓存组件激活
deactived 在keep-alive中使用,缓存组件不激活
3.请简述 vue 的单向数据流
父级 prop 的更新会向下流动到子组件中,每次父组件发生更新,子组件
所有的 prop 都会刷新为最新的值
数据从父组件传递给子组件,只能单向绑定,子组件内部不能直接修改
父组件传递过来的数据,(可以使用 data 和 computed 解决)
4.vue组件之间通信的方式有哪些,是如何通信的
1. 父传子 通过在父组件自定义属性,在子组件通过props接收
2. 子改父或者子传父 在父组件中通过自定义事件传递方法,在子组件中通过$emit接收自定义事件
3. 兄弟之间通信 通过一个事件总线(eventBus 其实是一个空实例),在A组件中通过$on绑定自定义事件 在B组件中通过$emit接收组件
4.通过$parent /$children/$refs $parent指的是父组件实例 $children/$refs是子组件实例
5. $attrs & $listeners
$attrs获取父组件中不被props接收的自定义属性 并且可以通过 v-bind="$attrs" 传入内部组件
$listeners获取父组件中的自定义事件
6.provide & inject 祖先和后代之间的通信
Provide的值可以是对象或者是返回对象的函数
5.Vue中创建的指令有哪些,分别有什么作用(至少写出10个)
1、 v-model 多用于表单元素实现双向数据绑定
2、 v-for 格式: v-for="字段名 in(of) 数组 json" 循环数组或 json
3、 v-show 显示内容
4、 v-hide 隐藏内容
5、 v-if 显示与隐藏
6、 v-else-if 必须和 v-if 连用
7、 v-else 必须和 v-if 连用 不能单独使用 否则报错 模板编译错误
8、 v-bind 动态绑定 作用: 及时对页面的数据进行更改
9、 v-on:click 给标签绑定函数,可以缩写为@,例如绑定一个点击函数 函数必须写在 methods 里面
10、v-text 解析文本
11、v-html 解析 html 标签
12、v-bind 绑定属性 缩写写法 :
13、v-once 进入页面时 只渲染一次 不在进行渲染
14、v-cloak 防止闪烁
15、v-pre 把标签内部的元素原位输出