唯品秀前端博客
当前位置: 前端开发 > Vue.js专区 > Vue.js替代vuex全局状态共享store的方案Observable

Vue.js替代vuex全局状态共享store的方案Observable

2019-06-26 分类:Vue.js专区 作者:管理员 阅读(950)

Vue.js那是真为前端开发者着想,如同当年的jQuery,多学一个知识点,就能少写一行代码,这句话完全可以用于Vue.js身上,下面说说在Vue.js2.6新版本中新增的东西Vue.observable( object ),这货能替代你以前的一些数据状态管理方案,当然,我并不是说vuex就没用了,就被完全替代了。

来个简单示例

1
2
3
4
5
6
7
8
9
// 准备个文件store.js - /store/store.js
import Vue from 'vue'

export const store = Vue.observable({ count: 0 })  //定义一个变量
export const mutations = {  //定义一个方法,将来在组件中调用这个方法从而能改变上面的变量count值
  setCount (count) {
    store.count = count
  }
}

组件中去使用它

返回的对象可以直接用于渲染函数计算属性内,并且会在发生改变时触发相应的更新。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<template>
    <div>
        <p>你点+-,看我能不能根据状态去动态改变</p>
        <label for="bookNum">数量</label>
        <button @click="setCount(count+1)">+</button>
        <span>{{count}}</span>
        <button @click="setCount(count-1)">-</button>
    </div>
</template>

<script>
import { store, mutations } from '../store/store' // Vue2.6新增API Observable

export default {
  name: 'Add',
  computed: {
    count () {
      return store.count //用于去渲染之前Observable中定义的变量count
    }
  },
  methods: {
    setCount: mutations.setCount
  }
}
</script>

小结

无意在网上看到的,觉得真心不错,有机会可以在一般项目中去尝试,vuex你还得单独配置装插件,做配置,这个东西就是内置的,我觉得尤雨溪大佬可能是借鉴了小程序类似这种全局状态管理,小程序不就也有一个全局状态globalData么。并且它相比较我们之前说到的$emit/$on这种兄弟组件数据传递方式类似,但明显更简洁。

官方强调,在 Vue 2.x 中,被传入的对象会直接被 Vue.observable 改变,所以如这里展示的,它和被返回的对象是同一个对象。在 Vue 3.x 中,则会返回一个可响应的代理,而对源对象直接进行修改仍然是不可响应的。因此,为了向前兼容,我们推荐始终操作使用 Vue.observable 返回的对象,而不是传入源对象。

针对上面官方说的这段话,我做了测试,2.6中发现在组件中是可以直接修改源对象,即可以直接去修改observable上的count,整个数据是响应的。可能我理解错了官方想表达的意思。

「两年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(4) 打赏

谢谢你请我吃鸡腿*^_^*

支付宝
微信
4

谢谢你请我吃鸡腿*^_^*

支付宝
微信

上一篇:

下一篇:

你可能感兴趣

共有 0 条评论 - Vue.js替代vuex全局状态共享store的方案Observable

博客简介

唯品秀博客: weipxiu.com,一个关注Web前端开发技术、关注用户体验、坚持更多原创实战教程的个人网站,愿景:成为宇宙中最具有代表性的前端博客,期待您的参与,主题源码 

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 235 篇
  • 草稿数目: 0 篇
  • 分类数目: 14 个
  • 独立页面: 6 个
  • 评论总数: 874 条
  • 链接总数: 13 个
  • 标签总数: 424 个
  • 建站时间: 1008 天
  • 注册用户: 2228 人
  • 访问总量: 8911714 次
  • 最近更新: 2019年9月19日
服务热线:
 173xxxx7240

 QQ在线交流

 旺旺在线