当前位置: 首页 > wzjs >正文

asp.net mvc 网站开发之美新安网站开发

asp.net mvc 网站开发之美,新安网站开发,安远网站制作,长沙制作网站软件本文参考珠峰架构公开课之vuex实现原理 vuex是基于vue框架的状态管理。 如何在vue项目中初始化vuex? 通过Vue.use(vuex)注册。通过实例化vuex里的Store,并传入options即可使用。 import Vue from "vue"; import Vuex from "vuex"; V…

本文参考珠峰架构公开课之vuex实现原理

vuex是基于vue框架的状态管理。

如何在vue项目中初始化vuex
  1. 通过Vue.use(vuex)注册。
  2. 通过实例化vuex里的Store,并传入options即可使用。
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
export default new Vuex.Store({state: {},getters: {},mutations: {},actions: {}
});

既然vuex是通过vue.use注册,并且通过vuex.Store实例化来生成,那它的底层是包含一个Store的实例,并且有个注册组件的install方法。

class Store {constructor(options) {}
}
const vuex = {install(Vue) {}
};
export default {...vuex,Store,
};
状态保存在什么地方?

vue中是通过this.$store.state访问。既然通过this访问全局状态,分析可以有两种方式实现:

  1. $store是绑定在vue的原型上,即通过Vue.prototype.$store绑定。
  2. 通过Vue.mixin给所有的组件的属性上绑定$store

实际上vuex是通过Vue.mixin来实现保存全局状态的。那为什么不能绑定在vueprototype上呢?看下例:

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'new Vue1({store,render: h => h(App)
}).$mount('#app')new Vue2({render: h => h(App)
}).$mount('#app2')

如果碰到一个项目中vue被实例化了两次,这时候将$store保存在vue.prototype上的话,Vue1Vue2会共享一个$store,这样会造成状态冲突。实例化出来的vue,他们的状态应该是隔离的。所以通过Vue.mixin给当前vue实例下所有的组件绑定$store属性,实现代码如下:

const vuex_install = {install(vue) {vue.mixin({beforeCreate() {if (this.$options && this.$options.store) {this.$store = this.$options.store;} else {this.$store = this.$parent && this.$parent.$store;}},});},
};

1. 为什么要放在beforeCreate中注册?
个人理解是因为在beforeCreate中注册$store的话就可以在created中使用$store
2. $store是如何绑定到各个组件上的?
通过Vue.mixin的实现思路就是在组件创建之前(生命周期为beforeCreate)的时候,判断组件是否存在store属性,存在的话就是根元素,并在根元素绑定$store属性,然后子组件再一步步获取上级组件的$store属性并绑定到自己的$store属性上,这样所有的组件都支持通过$store来访问状态值。

最后编辑于:2025-04-21 10:38:03


喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.dtcms.com/wzjs/611228.html

相关文章:

  • 自己的电脑可以做网站服务器塑胶原料 东莞网站建设
  • 淘宝app网站建设wordpress 500错误解决
  • 做钓鱼网站教程wordpress 分类的地址
  • 网站打不开 别人能打开网站过期会怎样解决
  • 建设银行关闭网站查询信用卡账单怎样进WordPress
  • 简述网站规划的主要任务网站建设重要意义
  • 创建网站建设手机端开发网站模板下载
  • 商城网站建设预算要多少钱积分商城网站建设
  • 电子商务网站建设讯息网站建设的需求是什么意思
  • 石家庄规划建设局网站微网站建设方案书
  • 靖江做网站专业做家电经销的网站
  • 什么软件做网站做好百度推广送企业网站吗
  • 潍坊网站网站建设找人做网站 自己购买服务器
  • 青岛胶东建设国际机场网站如何用.net做网站
  • 南阳商都网站做网站app开发网站建设培训班
  • 定制网站 多少钱好的网站制作
  • 有个专门做装修的网站广东省东莞阳光网
  • 深圳网站建设网站网站平台建设的当前问题
  • 青岛网站建设首选思茅网站建设
  • 网站制作自学网网站找谁做
  • 网站建设公司的重要性本科自考是什么意思啊
  • 毕业设计做网站用什么wordpress 微信通知
  • 南昌网站建设方案外包软件开发平台是指什么
  • 牙科医院网站建设工作证明模板下载
  • 南充建设网站江苏建设教育网官网入口
  • 静态网站是什么意思滨海网站建设公司
  • 商务网站规划与设计实训心得杭州seo网站推广软件
  • 佛山便宜网站建设wordpress页面侧菜单
  • 川畅科技搜搜 网站设计wordpress修改管理员密码
  • 常用的网站建设技术百度帐号登录入口