VUEX 的使用学习二: state

vuex,使用,学习,state · 浏览次数 : 112

小编点评

**转载内容** * state 提供唯一的数据资源,所有的共享数据都要统一放到store 中的state中进行存储。 * 状态state用于存储所有组件的数据。 * 管理数据// 初始化vuex对象const store = new vuex.Store({ state: { // 管理数据 count: 0 }}) **第一种访问方式:this.$store.state.全局数据名称** 在组件获取state的数据: * 原始用法插值表达式:<!--原始用法--><div>A组件 state的数据:{{$store.state.count}}</div><!--使用计算属性--><div>A组件 state的数据:{{count}}</div> **第二种方式:mapState:** * 从vuex中按需求导入mapState函数:import {mapState} from 'vuex' * 通过刚才导入的mapState函数,将当前组件需要的全局数据,映射为当前组件的computed计算属性

正文

转载请注明出处:

  state 提供唯一的数据资源,所有的共享的数据都要统一放到store 中的state中进行存储;

  状态state用于存储所有组件的数据。

管理数据

// 初始化vuex对象
const store = new vuex.Store({
  state: {
    // 管理数据
    count: 0
  }
})

第一种访问方式

this.$store.state.全局数据名称

  在组件获取state的数据:原始用法插值表达式

<!--原始用法-->
<div>A组件 state的数据:{{$store.state.count}}</div>

<!--使用计算属性-->
<div>A组件 state的数据:{{count}}</div>

  使用计算属性:

// 把state中数据,定义在组件内的计算属性中
computed: {
  // 1. 最完整的写法
  // count: function () {
  //   return this.$store.state.count
  // },
  // 2. 缩写
  count () {
    return this.$store.state.count
  }
}
// 不能使用箭头函数  this指向的不是vue实例

  注意:

    - state中的数据是自定义的,但是state属性名是固定的
    - 获取数据可以通过 $store.state
    - 可以使用计算属性优化模板中获取数据的方式
    - 计算属性不可以使用箭头函数(箭头函数本身是没有this的,实际上用的是父级函数中的this)

 第二种方式 mapState:

  把vuex中的state数据映射到组件的计算属性中。

  使用方法:

1.从vuex中按需求导入mapState函数
import {mapState} from 'vuex'
通过刚才导入的mapState函数,将当前组件需要的全局数据,映射为当前组件的computed计算属性
2. 将全局数据,映射为当前组件的计算属性,mapState参数是一个数组
computed :{ ...mapState(['count']) }

  使用示例:

<a-input placeholder="请输入任务" class="my_ipt" :value="inputValue" />

<script>
import { mapState, mapGetters } from 'vuex'

export default {
  name: 'app',
  data() {
    return {}
  },
  created() {
  },
  computed: {
    ...mapState(['inputValue']),
  },
}  

 

  在网上找到一个demo 示例,可参考学习: https://gitee.com/xiangbaxiang/vue-store

 

与VUEX 的使用学习二: state 相似的内容:

VUEX 的使用学习二: state

转载请注明出处: state 提供唯一的数据资源,所有的共享的数据都要统一放到store 中的state中进行存储; 状态state用于存储所有组件的数据。 管理数据 // 初始化vuex对象 const store = new vuex.Store({ state: { // 管理数据 count

VUEX 使用学习六 : modules

转载请注明出处: 当Store中存放了非常多非常大的共享数据对象时,应用会变的非常的复杂,Store对象也会非常臃肿,所以Vuex提供了一个Module模块来分隔Store。通过对Vuex中的Store分隔,分隔成一个一个的Module模块,每个Module模块都拥有自己的state、mutatio

VUEX 使用学习五 : getter

转载请注明出处: Getter对Store中的数据进行加工处理形成新的数据。他不会修改state中的原始数据,起到的是包装数据的作用; 有时我们需要从 store 中的 state 中派生出一些状态,例如对列表进行过滤并计数 如果有多个组件需要用到此属性,我们要么复制这个函数,或者抽取到一个共享函数

VUEX 的使用学习一

转载请注明出处: 一、Vuex是什么? 介绍:Vuex 是一个专为 [Vue](https://so.csdn.net/so/search?q=Vue&spm=1001.2101.3001.7020).js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态

VUEX 使用学习三 : mutations

转载请注明出处: 在 Vuex 中 store 数据改变的唯一方法就是提交 mutations。mutations里面装着一些改变数据方法的集合,这是Vuex 设计很重要的一点,就是把处理数据逻辑方法全部放在 mutations 里面,使得数据和视图分离。 通过这种方式虽然操作起来稍微繁琐一些,但是

VUEX 使用学习四 : action

转载请注明出处: action 用于处理异步任务;action,可以操作任意的异步操作,类似于mutations,但是是替代mutations来进行异步操作的。首先mutations中必须是同步方法,如果使用了异步,虽然页面上的内容改变了,但实际上Vuex.Store没有监听到数据的更新 如果通过异

vue中新的状态管理器-pinia

背景 对于pinia的使用,可参考官方文档在这不做过多赘述。这边主要来讲讲pinia中 少用且好用的方法,为什么我们选择pinia而不用vuex ps: 以下写法全部基于组合式API 使用方式: 先下载依赖 npm i pinia -s 在vue3中,main.js这么写 import { crea

Vuex 4与状态管理实战指南

title: Vuex 4与状态管理实战指南 date: 2024/6/6 updated: 2024/6/6 excerpt: 这篇文章介绍了使用Vuex进行Vue应用状态管理的最佳实践,包括为何需要状态管理,Vuex的核心概念如store、actions、mutations和getters,以及

vue3 快速入门系列 —— 状态管理 pinia

其他章节请看: vue3 快速入门 系列 Pinia vue3 状态管理这里选择 pinia。 虽然 vuex4 已支持 Vue 3 的 Composition API,但是 vue3 官网推荐新的应用使用 pinia —— vue3 pinia 集中式状态管理 redux、mobx、vuex、pi

Nuxt.js 深入浅出:目录结构与文件组织详解

摘要:本文详述了Nuxt.js框架中关键目录与配置文件的作用及使用方法,包括布局设定、页面结构管理、插件集成、静态资源处理、 Vuex状态管理、项目配置文件nuxt.config.js详解以及package.json、.eslintrc.js、.babelrc等辅助配置文件的配置方式,为构建高效Nu...