VueX 是什么

VueX 是什么

·
1. 概念:
1. VueX 是 Vue配套的公共数据管理工具,他可以把一些共享的数据保存到VueX中,方便整个程序中的任何组件直接获取或修改我们得公共数据
2. Vuex 是为了保存组件之间的共享数据而诞生的,如果组件之间有 需要共享的数据, 可以直接挂载到Vuex 中, 而 不用通过父子组件之间的传值, 如果 组件的数据 不需要共享,就没必要 挂载到 Vuex中去
3. Vuex 是一个全局的共享数据的储存区域, 就相当于数据的仓库

Vuex 怎么使用
  1. 使用 npm i vuex --save 安装到项目中

  2. 在一个 模块化打包系统中, 通过Vue.use() 来安装Vuex

​	import Vue from ’‘vue’‘

​	import Vuex from  ’‘vuex’‘

Vue.use(Vuex)
  1. 安装过后 , 创建一个store
// 配置 vuex的步骤
//1. 安包 npm  i vuex -S
//2. 导入包
 import Vuex from 'vuex'
//3. 注册 vuex到 vue项目中
Vue.use(Vuex)
//4. new Vuex.Store()实例 得到一个 数据仓储数据对象
var store = new Vuex.Store({
    state:{
        //用来存储数据
    },
    mutations:{
        // 注意: 如果要操作store 中的 state值, 只能通过调用mutations 提供的方法 才能操作对应的数据,不能在组件中直接操作 state中的数据 因为 万一导致了数据的紊乱, 不能快速定位到错误的原因,因为 每个组件都有可能操作数据的方法 
        increment(state){
            state.count++
        },
        //注意: 如果组件想要调用 mutations 中的方法,只能使用 this.$store.commit('方法名')
        subtract(state,c){
            // 注意: mutations 的 函数参数列表在中最多支持两个参数,
            //参数1 是state状态;
            //参数2 通过commit 提交过来的参数
            state.count -= c
        }
    },
    getters:{
        //注意: 这里的getters , 只负责对外提供数据,不负责修改数据,做修改操作 去找mutations 
		optCount:function(state){
			return '当前的最新的count值是' + state.count
        }
    }
})
//5. 将vuex创建的store 挂载到VM 实例上 只要挂载到VM上  任何组件都能使用 store来存取数据

// 在组件中 使用 vuex中的数据 只能通过 this.$store.state.属性 来调用数据
Vuex是一个状态管理模式,在Vue.js应用程序中使用。它可以集中管理Vue应用程序中的所有组件的状态,使得状态的共享和修改变得更加容易和可控。 Vuex有五个核心概念:state、getter、mutation、action和module。 - state:用于存储状态数据的对象。 - getter:类似于Vue组件中的计算属性,用于在状态发生变化时派生出新的状态。 - mutation:用于修改状态的方法,必须是同步的。 - action:用于提交mutation,可以是异步的。 - module:用于将状态分割成更小的模块,每个模块都拥有自己的state、getter、mutation和action。 使用Vuex的步骤如下: 1. 安装Vuex:在Vue.js项目中运行npm install vuex。 2. 创建store:在Vue.js项目中创建一个store.js文件,用于创建Vuex的store对象。 3. 定义state:在store.js文件中定义state对象,用于存储状态数据。 4. 定义mutation:在store.js文件中定义mutation方法,用于修改state中的数据。 5. 定义getter:在store.js文件中定义getter方法,用于派生出新的状态数据。 6. 定义action:在store.js文件中定义action方法,用于提交mutation。 7. 将store注入到Vue应用程序中:在Vue.js项目中的main.js文件中导入store并将其注入到Vue实例中。 8. 在组件中使用Vuex:在Vue.js组件中使用Vuex的state、getter、mutation和action方法。可以通过this.$store来访问store中的数据和方法。 示例代码: // store.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state) { state.count++ } }, getters: { doubleCount(state) { return state.count * 2 } }, actions: { incrementAsync({commit}) { setTimeout(() => { commit('increment') }, 1000) } } }) export default store // main.js import Vue from 'vue' import App from './App.vue' import store from './store' new Vue({ store, render: h => h(App) }).$mount('#app') // App.vue <template> <div> <p>Count: {{ count }}</p> <p>Double Count: {{ doubleCount }}</p> <button @click="increment">Increment</button> <button @click="incrementAsync">Increment Async</button> </div> </template> <script> export default { computed: { count() { return this.$store.state.count }, doubleCount() { return this.$store.getters.doubleCount } }, methods: { increment() { this.$store.commit('increment') }, incrementAsync() { this.$store.dispatch('incrementAsync') } } } </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值