vue+axios+vuex 入坑基础例子

 

步骤:

1、下载安装vuex,或者引入

2、创建实例store

3、传送存储数据

4、读取数据(vuex刷新无数据,使用WEB储存 localStorage 和 sessionStorage)

 

实例化!

1.先设置储存的数据

2.在mutations 写入方法

3.用 this.$store.commit('方法名', 提交过去的数据) //触发

4.在mutations 写入方法里面处理完

5.在VUE的计算方法输出数据

 1 // 实例化
 2 const store = new Vuex.Store({
 3     state: { //需要储存的数据
 4         counts: 1,
 5         phoneSizeId: ''
 6     },
 7     //getters
 8     getters: { //获取状态及里面的数据
 9         getTotal(state) { //拿状态集里面的数据
10             return state.counts
11         }
12     },
13     // commit
14     mutations: { //动作 只能同步操作数据 不能做接口
15         // this.$store.commit('increment', this.price) //触发
16         increment(state, price) { //state 来改变 cound
17             // 变更状态
18             state.counts += price
19         },
20 
21         oneSize(state, phoneSize) { //state 对外通讯
22             // 变更状态
23             state.phoneSizeId = phoneSize
24         },
25 
26         decrement() {
27             state.counts -= price
28         }
29     },
30     //dispatch
31     actions: { //能在这里进行异步的操作 跟后端API接口放这里
32         //  this.$store.dispatch('increase', this.price) //触发
33         increase(context, price) { //做个中介再去执行
34             context.commit('increment', price)
35         }
36     }
37 })

 

 告诉VUE挂载上去 注入!

1 new Vue({ //實例對象
2     el: '#app', //裝載到什麼位置,標籤 ID CLASS
3     router, //用来渲染 外部引入的App组件  router:h=>h(App) 内置方法
4     store, //全局使用
5     template: '<App/>', //裝載 什麼樣的東西 HTML代碼 片段 模板
6     components: { App }
7 })

 

给vuex注入数据

1         methods: {
2             loadId(data, shopNames) {
3                 this.$router.push({ name: 'shopGoodsList', params: { id: data }, query: data })
4                 this.$store.commit('increment', shopNames) //触发
5                 sessionStorage.shopName = shopNames;
6             }
7         }

 

输出数据

1     computed: {
2             setName() {
3                 if (this.$store.state.shopNames) {
4                     return this.$store.state.shopNames;//输出传过来的数据
5                 } else {
6                     return sessionStorage.shopName;//输出浏览器保存的
7                 }
8             }
9         },

 

刷新后数据会消失?就这么处理!sessionStorage保存!

基本就处理完毕!

 
posted @ 2017-09-07 17:50  祗堂幻狼  阅读(309)  评论(0编辑  收藏  举报