Vuex的使用

1.在src文件夹下创建store(用来存储数据、状态)文件夹并在其中创建index.js文件(index.js 随机命名),在index.js文件中写上

Import Vue from ‘vue’
Import Vuex from ‘vuex’
Import axios from ‘axions’//引入插件文件
Vue.use(Vuex)//使用vuex
Export default new Vuex.Store({
state : {//申明一个state
msg: ‘ ’//申明一个名为msg的空对象用于保存axios请求到的data数据
},
mutations:{//和vue中的methods类似,用于存储方法
getdata (state,res){//申明一个名为getdata的方法//传入state(和上面state对应)res(用于保存 请求过来的数据)
axios.get(‘url’).then((res)=>{//请求
state.msg=res.data//将请求来的data数据赋值给msg
})
}
}
})

2.在main.js文件中注册

import Vue from ‘vue’
import App from ‘./App’
Import store from ‘./store/index.js’//引入store
new Vue({
el: ‘#app’,//实现挂载
store,//使用store
components:{APP},
Template:<APP/>
})

3.设想一个问题,使用axios获取数据,是什么时候获取最佳?毫无疑问当然是页面打开时便通过请求获取到数据,然后在绚烂页面时使用里面的数据,所以在这里,我们就用到了一个钩子函数:beforeCreate()

Import vHeader from ‘@/components/header/header.vue’//导入名为header的子组件
Export default {
Name:’App’,
Components: {
vHeader
},
beforeCreate(){
This. s t o r e . c o m m i t ( ‘ g e t d a t a ’ ) / / 利 用 T h i s . store.commit(‘getdata’)//利用This. store.commit(getdata)//This.store.commit触发mutation中的方法
}
}

4.在子组件中对获取到的数据进行computed 计算属性监听

export default {//输出数据
name: ‘vHeader’,
computed: {
seller () {
console.log(this.$store.state.msg)
return this.$store.state.msg },
}
}

具体如下(仅做参考)
1.在store中存储数据
在这里插入图片描述

在这里插入图片描述
2.
在这里插入图片描述
在这里插入图片描述
3.获取数据。
由于 Vuex 的状态存储是响应式的,从 store 实例中读取状态最简单的方法就是在计算属性中返回某个状态。通过在根实例中注册 store 选项,该 store 实例会注入到根组件下的所有子组件中,且子组件能通过 this.$store 访问到
在这里插入图片描述
4.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有需要可以参考,希望纠正,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值