[Vue] vuex-interview
1.你有使用过 vuex 的 module 吗?主要是在什么场景下使用?
把状态全部集中在状态树上,非常难以维护。
按模块分成多个 module,状态树延伸多个分支,模块的状态内聚,主枝干放全局共享状态
2.vuex 中 actions 和 mutations 有什么区别?
action
- actions 是用来触发 mutations 的,它无法直接改变 state
- 一些对 State 的异步操作可放在 Action 中,并通过在 Action 中 commit Mutation 变更状态
- Action 可通过 store.dispatch() 方法触发,或者通过 mapActions 辅助函数将 vue 组件的 methods 映射成 store.dispatch() 调用 Mutation
mutation
- mutations 可以直接修改 state,在 vuex 的严格模式下,Mutaion 是 vuex 中改变 State 的唯一途径
- Mutation 中只能是同步操作通过 store.commit() 调用 Mutation
尽量通过 Action 或 mapMutation 调用而非直接在组件中通过
this.$store.commit()提交
3.vuex 使用 actions 时不支持多参数传递怎么办?
Object
4.你觉得要是不用 vuex 的话会带来哪些问题?
多层级组件,兄弟组件之前数据共享繁琐
5.vuex 怎么知道 state 是通过 mutation 修改还是外部直接修改的?
通过 $watch 监听 mutation 的 commit 函数中 _committing 是否为 true
6.怎么监听 vuex 数据的变化?
在 mutations 中监视
7.页面刷新后 vuex 的 state 数据丢失怎么解决?
- localStorage / sessionStorage
- vuex-persistedstate 的 createPersistedState()方法
8.vuex 的 state、getter、mutation、action、module 特性分别是什么?
- state, 状态初始化, 并实施观察
- getter, 获取数据用于 view 或 data 中使用
- mutation: 内部处理 state 变化
- action: 处理外部交互
- module: 模块化以上四个
9.vuex 的 store 有几个属性值?分别讲讲它们的作用是什么?
- state:存贮公共数据的地方
- Getters:获取公共数据的地方
- mutations:放的是同步的操作和 reducer 有点像 通过 store 的 commit 方法来让 mutations 执行
- action:放的是异步的操作 通过 dispatch 的方法让 action 里面的方法执行
- context 是 store 的一个副本
Vuex 就是提供一个仓库,store 仓库里面放了很多对象其中 state 即使数据源存放地,
10.使用 vuex 的优势是什么?
vuex 中的所有功能都能够通过其他的方式进行实现,只不过 vuex 对这些方法进行了整合处理,使用起来更加便捷,同时也便于维护.全局状态变量的统一管理,便于进行全局或者局部的状态管理, 便于组件/插件/混合之间的联系.
[Vue] vuex-interview的更多相关文章
- vue+vuex初入门
Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 解决问题: 传参的方法对于多层嵌 ...
- 我的音乐盒子(nodejs7 + koa2 + vue + vuex + vue-router)
你们知道的,nodejs对jser来说,是个好东西,快快的,自从接触nodejs后,总想弄点东西. 这弄个啥了,一天打开百度音乐盒,哟,自己弄一个如何了,好啊好啊. 后台: nodejs 7 + ko ...
- use vue vuex vue-router, not use webpack
vue,vuex,vue-router放在一起能做什么?不用webpack之类的打包工具使用他们是否可行?各位道友在初学vue时是否有这样的困惑.因为现代构建前端项目的一般模式是: 安装webapck ...
- [ABP开源项目]--vue+vuex+vue-router+EF的权限管理系统
好久没写文字了,当然大家也不期待嘛,反正看代码就行了. 演示网站 首先说下这个项目吧. 如标题一样是基于VUE+.NET开发的框架,也是群友一直吼吼吼要一个vue版本的ABP框架. 我们先来看看首页吧 ...
- vue vuex vue-rouert后台项目——权限路由(超详细简单版)
项目地址:vue-simple-template共三个角色:adan barbara carrie 密码全是:123456 adan 拥有 最高权限A 他可以看到 red , yellow 和 blu ...
- 基于Vue + Vuex + Vue-router + Webpack 2.0打造微信界面
一.项目简介 基于Vue + Vuex + Vue-router + Webpack 2.0打造微信界面,实现了微信聊天.搜索.点赞.通讯录(快速导航).个人中心.模拟对话.朋友圈.设置等功能. 二. ...
- vue+vuex+axios+echarts画一个动态更新的中国地图
一. 生成项目及安装插件 # 安装vue-cli npm install vue-cli -g # 初始化项目 vue init webpack china-map # 切到目录下 cd china- ...
- vuejs学习——vue+vuex+vue-router项目搭建(三)
前言 vuejs学习——vue+vuex+vue-router项目搭建(一) vuejs学习——vue+vuex+vue-router项目搭建(二) 为什么用vuex:组件之间的作用域独立,而组件之间 ...
- vuejs学习——vue+vuex+vue-router项目搭建(二)
前言 最近比较忙,所有第二章发布晚了,不好意思各位. vuejs学习——vue+vuex+vue-router项目搭建(一) 中我们搭建好了vue项目,我相信大家已经体验了vue其中的奥妙了,接下来我 ...
- vuejs学习——vue+vuex+vue-router项目搭建(一)
前言 快年底了却有新公司邀请了我,所以打算把上家公司的学到一下技术做一些总结和分享. 现在vuejs都2.0了,我相信也有很多朋友和我一样实际项目还是选择vue1.0的或者给新手一些参考,不管在选择哪 ...
随机推荐
- happens-before规则和as-if-serial语义
JSR-133使用happens-before的概念来阐述操作之间的内存可见性.在JMM中,如果一个操作执行的结果需要对另一个操作可见, 那么这2个操作之间必须要存在happens-before关系. ...
- JS框架_(Esign.js)仿信用卡电子签名特效
百度云盘 传送门 密码:l60w 电子签名特效效果: <!DOCTYPE html> <html> <head lang="en"> <m ...
- TreeMap、HashMap、LindedHashMap的区别
LinkedHashMap可以保证HashMap集合有序.存入的顺序和取出的顺序一致.TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器 ...
- SpringBoot 使用定时任务动态执行任务
import com.patient.core.adapter.CorsFilter; import org.mybatis.spring.annotation.MapperScan; import ...
- shiro.ini
# # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreeme ...
- git 更改远程仓库地址,强行推送远程仓库
强行推送远程仓库 #把一个现有的工程拷贝一份 #去掉远程仓库关联 git remote rm origin #添加远程仓库关联 git remote add origin http://xxx.git ...
- erlang实现排列组合问题
今天在公司做一个日志分析的任务,在做统计的时候,遇到这样一个问题, 之前已经将数据拆分好,出现这样一张中间表Table,简略写如下: A属性 B属性 C属性 D属性 1 3 ...
- kotlin之基本数据类型
数据类型 占用字节数 Double 8 Float 4 Long 4 Int 4 Short 2 Byte 1 数据类型之间的转换 toByte():转换为 ...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
目前这里能调用是因为,在service的实现类里面,new了一个dao的对象 正常情况下 这里不应该是new一个对象,应该等于null或为空 设置为空侯再运行就会报错 出错的原因是这里为null 需要 ...
- 四十八:数据库之alembic常用命令和经典错误的解决办法
常用命令:1.init:创建一个alembic仓库2.reversion:创建一个新的版本3.--autogenerate:自动将当前模型的修改,生成迁移脚本4.-m:message,可以记录本次迁移 ...