前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >(二)定义和访问状态(state)

(二)定义和访问状态(state)

作者头像
老怪兽
发布2023-02-22 19:03:32
发布2023-02-22 19:03:32
23800
代码可运行
举报
运行总次数:0
代码可运行
定义和访问状态(state)
一、添加 state 数据

state

所有的全局数据都在 state 中,保存数据需要添加 state 函数,这里的 statedata 函数是一样的,里面可以是任何 javaScript 代码

代码语言:javascript
代码运行次数:0
复制
import { createApp } from "vue";
import { createStore } from "vuex";
import App from "./App.vue";

const store = createStore({
  state() {
    return {
      num: 1,
      str: "string",
      bool: true,
      arr: [1, 2, 3],
      user: {
        id: 1,
        name: "John",
        age: 25,
      },
    };
  },
});

const app = createApp(App);

app.use(store);

app.mount("#app");
二、访问 state 数据
  • 需要使用 computed 计算属性来获取 state 值,这样 state 的值改变了才会动态响应
代码语言:javascript
代码运行次数:0
复制
computed: {
  num() {
    return this.$store.state.num;
  }
}
  • 访问 state 数据的第二种方法
代码语言:javascript
代码运行次数:0
复制
// 如果像上面一个一个的去获取非常麻烦
// 这时候 vue 给我们提供了一个 mapState 函数来把全局的数据映射到computed中
import { mapState } from "vuex"
export default {
  computed: {
    ownComputed() {
      return "自己的计算属性";
    },
    // 把state 中的数据映射到组件中 数组中的就是 state中的数据
    ...mapState(["num", "str", "bool", "arr", "user"]),
  }

  如果有复杂的逻辑,就需要写成对象函数的形式
  computed: mapState({
    num: (state) => state.num,
    num: "num",
    count: "num",
  })
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年11月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义和访问状态(state)
  • 一、添加 state 数据
  • 二、访问 state 数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档