vuex的使用和简易实现


Posted in Vue.js onJanuary 07, 2021

这里记录一下vuex的使用和vuex的简易实现

首先创建对应的store目录和对应的入口index.js

import Vue from 'vue'
import Vuex from 'vuex'
import products from './modules/products'
import cart from './modules/cart'

Vue.use(Vuex)

export default new Vuex.Store({
 strict: process.env.NODE_ENV !== 'production',
 state: {
  count: 0,
  msg: 'Hello Vuex'
 },
 getters: {
  reverseMsg (state) {
   return state.msg.split('').reverse().join('')
  }
 },
 mutations: {
  increate (state, payload) {
   state.count += payload
  }
 },
 actions: {
  increateAsync (context, payload) {
   setTimeout(() => {
    context.commit('increate', payload)
   }, 2000)
  }
 },
 modules: {
  products,
  cart
 }
})
  • 首先注册vuex的插件
  • 开发阶段开启strict严格模式
  • 配置初始的state
  • 配置对应的getters
  • 配置对应的mutations 无副作用的函数更新
  • 配置actions在此做异步处理
  • 最后配置模块
  • 模块中配置:
const state = {}
const getters = {}
const mutations = {}
const actions = {}

export default {
 namespaced: true,
 state,
 getters,
 mutations,
 actions
}

配置模块命名空间namespaced:true 导入store时的模块名

使用的时候

vuex的使用和简易实现

可以 通过一些对应的vuex提供的方法把store中的对应属性和方法拿到组件中

vue父子通信

vuex的使用和简易实现

vuex的使用和简易实现

vuex的使用和简易实现

或者就是自定义 组件的 v-model

非父子组件:Event Bus
我们可以使用一个非常简单的 Event Bus 来解决这个问题:

vuex的使用和简易实现

vuex的使用和简易实现

vuex的使用和简易实现

还有一种需要注意的,外部props转换为内部state

name: 'ArticleMeta',
 props: {
  article: {
   type: Object,
   required: true
  },
  user: {
   type: Object
  }
 },
 data () {
  return {
   currentArticle: this.article, isDelete: false
  }
 },

以上就是vuex的使用和简易实现的详细内容,更多关于vuex的使用和实现的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
vue监听滚动事件的方法
Dec 21 Vue.js
vue中封装axios并实现api接口的统一管理
Dec 25 Vue.js
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
vue-router懒加载的3种方式汇总
Feb 28 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
如何理解Vue简单状态管理之store模式
May 15 Vue.js
vue-router中hash模式与history模式的区别
Jun 23 Vue.js
vue实现锚点定位功能
Jun 29 Vue.js
vue 数字翻牌器动态加载数据
Apr 20 Vue.js
vue watch监控对象的简单方法示例
Jan 07 #Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 #Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 #Vue.js
如何在vue-cli中使用css-loader实现css module
Jan 07 #Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 #Vue.js
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 #Vue.js
详解Vue2的diff算法
Jan 06 #Vue.js
You might like
五个PHP程序员工具
2008/05/26 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
页面乱码问题的根源及其分析
2013/08/09 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
js获取div高度的代码
2008/08/09 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Python根据文件名批量转移图片的方法
2018/10/21 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
python 基于opencv实现图像增强
2020/12/23 Python
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
Python中使用subprocess库创建附加进程
2021/05/11 Python
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript