全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Vuex之理解Store的用法

1.什么是Store?

上一篇文章说了,Vuex就是提供一个仓库,Store仓库里面放了很多对象。其中state就是数据源存放地,对应于与一般Vue对象里面的data(后面讲到的actionsmutations对应于methods)。

在使用Vuex的时候通常会创建Store实例new Vuex.store({state,getters,mutations,actions})有很多子模块的时候还会使用到modules

总结,Store类就是存储数据和管理数据方法的仓库,实现方式是将数据和方法已对象形式传入其实例中。要注意一个应用或是项目中只能存在一个Store实例!!

2.Store源码分析

class Store{
  constructor (options = {}) {
  // 1.部分2个‘断言函数'判断条件
  assert(Vue, `must call Vue.use(Vuex) before creating a store 
  instance.`) // 在Store实例化之前一定要确保Vue的存在
  assert(typeof Promise !== 'undefined', `vuex requires a Promise polyfill in this browser.`)
  //确保promise存在
  
  // 2.结构赋值拿到options里面的state,plugins和strict
  const {
  state = {}, //rootState
  plugins = [], // 插件
  strict = false //是否严格模式
   } = options
   
  // 3.Store internal state创建store内部属性
  this._options = options //存储参数
  this._committing = false //标识提交状态,保证修改state只能在mutation里面,不能在外部随意修改
  this._actions = Object.create(null) //存储用户定义的actions
  this._mutations = Object.create(null) //存储用户定义的mutations
  this._wrappedGetters = Object.create(null) //存储用户定义的getters
  this._runtimeModules = Object.create(null) //存储运行时的modules
  this._subscribers = [] //存储所有堵mutation变化的订阅者
  this._watcherVM = new Vue() //借用Vue实例的方法,$watch来观测变化
  
  // 4.将dispatch和commit的this指向当前store实例
  const store = this
  const { dispatch, commit } = this
  this.dispatch = function boundDispatch (type, payload) {
  return dispatch.call(store, type, payload)}
  this.commit = function boundCommit (type, payload, options) {
  return commit.call(store, type, payload, options)}}

后面文章逐步分析每一个模块。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vuex  # store  # store实例  # store使用  # vue.js的状态管理vuex中store的使用详解  # vue3中router路由以及vuex的store使用解析  # Vue使用Vuex一步步封装并使用store全过程  # 应于  # 有很多  # 说了  # 上一  # 要注意  # 会使  # 提供一个  # 讲到  # 大家多多  # 通常会  # 已对  # 只能在  # align  # style  # text  # center  # options  # constructor  # call  # assert 


相关文章: 建站之星2.7模板快速切换与批量管理功能操作指南  如何在建站宝盒中设置产品搜索功能?  建站之星会员如何解锁更多建站功能?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  如何快速查询域名建站关键信息?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  nginx修改上传文件大小限制的方法  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何基于云服务器快速搭建网站及云盘系统?  网页设计与网站制作内容,怎样注册网站?  如何高效配置香港服务器实现快速建站?  如何在IIS中新建站点并配置端口与IP地址?  网站制作需要会哪些技术,建立一个网站要花费多少?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何快速打造个性化非模板自助建站?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何在万网自助建站平台快速创建网站?  如何设计高效校园网站?  网站制作公司排行榜,四大门户网站排名?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  常州企业建站如何选择最佳模板?  建站之星官网登录失败?如何快速解决?  制作门户网站的参考文献在哪,小说网站怎么建立?  如何通过cPanel快速搭建网站?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何高效完成自助建站业务培训?  制作营销网站公司,淘特是干什么用的?  如何通过万网虚拟主机快速搭建网站?  如何确认建站备案号应放置的具体位置?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  建站之星导航配置指南:自助建站与SEO优化全解析  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  建站之星安装需要哪些步骤及注意事项?  高端云建站费用究竟需要多少预算?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  linux top下的 minerd 木马清除方法  如何在阿里云服务器自主搭建网站?  常州企业网站制作公司,全国继续教育网怎么登录?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。