美文网首页
vue.js 之 vuex 中的 state 使用

vue.js 之 vuex 中的 state 使用

作者: 男卅_卅 | 来源:发表于2019-11-08 16:29 被阅读0次

state

  • 我们先来看一个简单的state实例使用
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
count: 0
  }
})
  • 那么我们应该如何在vue组件中展示状态呢?由于Vuex的状态存储是响应式的,从store实例中读取状态最简单的方法就是在计算属性中返回某个状态,如下:
//创建一个Counter组件
const Counter = {
    data() { return {} },
    template: `<div>{{ count }}</div>`,
    computed: {
        count () {
          return store.state.count
      }    
    }
  }
  • 每当 store.state.count 变化的时候,都会重新求取计算属性,并刷新界面。

需要注意的是如果你把 store.state.count 放在data中, store.state.count 的变化是不会主动触发直接访问带store对象的,所以这样写五一是会报错的。

这种模式依赖于全局的管理员 store ,如果模块多了,意味着每个模块或者页面只要用到了这个state里面的数据,都得把store一如进来,这样的操作确实有点难受。当然,官方肯定是不允许有这样难受的操作出现的:

Vuex 通过store选项,提供了一种机制将状态从根组件“注入”到每一个子组件中(需调用Vue.use(Vuex));

const app = new Vue({
  el:'#app'
  //把 store 对象提供给 “store” 选项,
  //这可以把 store 的实例注入所有的子组件
  store,
  //子组件
  components: { Counter },
  template:`
    <div class="app">
      <counter></counter>
    </div>
  `
})
  • 通过在根实例中注册store选项,该store实例会注入到根组件下的所有子组件中,且子组件能通过this.$store访问的。让我们以前更新一下Counter的实现:
const Counter = {
      template: `<div>{{ count }}</div>`,
      computed: {
      count () {
          return this.$store.state.count
    }
  }
} 
  • Vuex 的状态固然好用,但是也不要滥用:

使用 Vuex 并不意味着你需要将所有的状态放入 Vuex。虽然将所有的状态放到 Vuex 会使状态变化更显式和易调试,但也会使代码变得冗长和不直观。如果有些状态严格属于单个组件,最好还是作为组件的局部状态。你应该根据你的应用开发需要进行权衡和确定。

相关文章

  • vue.js 之 vuex 中的 state 使用

    state 我们先来看一个简单的state实例使用 那么我们应该如何在vue组件中展示状态呢?由于Vuex的状态存...

  • 创建单页应用

    Vue.js + Vue Router 创建单页应用, 使用vuex还管理组件间的通信。 State:存放组件之间...

  • Vuex数据持久化

    使用Vuex时发现页面刷新以后Vuex里面存储的state数据会丢失,因为我们的state都是存储在内存中的。解决...

  • vuex

    核心概念 state 作用:存储数据 state定义:var state = {} 不使用vuex:存储需要使用的...

  • vuex

    安装、使用 vuex 首先我们在 vue.js 2.0 开发环境中安装 vuex : 然后 , 在 main.js...

  • Vuex-State、Getter、Mutation、Actio

    一、state(状态) #使用state在 Vue 组件中获取Vuex 状态 (不常用 & 不能改变数据),想要获...

  • vuex-along

    vuex-along - 持久化存储 state 的 vuex 扩展 安装 使用 配置

  • Vuex

    首先我们在 vue.js 2.X 开发环境中安装 vuex : 然后在store目录下新建以下文件:1.state...

  • Vuex 全局状态数据管理

    一、安装、使用 vuex vue.js 2.0 开发环境中安装 vuex 创建 store 文件夹和 index....

  • vue双向数据绑定vuex中的state

    vue双向数据绑定vuex中的state 在vue中, 不允许直接绑定vuex的值到组件中, 若是直接使用, 则会...

网友评论

      本文标题:vue.js 之 vuex 中的 state 使用

      本文链接:https://www.haomeiwen.com/subject/tpcwbctx.html