状态管理-vuex

1、使用vuex

// 使用vuex
// 第一步:装包npm i vuex -S

// 第二步:
import Vuex from ‘vuex‘
Vue.use(Vuex)

// 第三步:
const store = new Vuex.Store({
    state: {
        count: 0
    },
    mutations: {
        incr (state) {
            state.count++
        },
        sub (state, i) {
            state.count -= i;
        }
    }
})

var vm = new Vue({
    el: ‘#app‘,
    // render:将App组件渲染到el指定的div#app中(div#app中其他内容被覆盖)
    render: c => c(App),
    router,
    store // 第四步,挂载到vm
});

2、使用【$store.state.变量】获取vuex的数据;使用mutations来操作state中的数据【this.$store.commit(‘方法名‘, 参数)】

<template>
<div>
    <h1>counter组件</h1>
    <!-- 以前 -->
    <!-- <input type="text" v-model="count"/>
    <input type="button" value="加1" @click="increment"/>
    <input type="button" value="减2" @click="subtract"/>
    -->

    <!-- 使用vuex后 -->
    <input type="text" v-model="$store.state.count"/>
    <input type="button" value="加1" @click="increment"/>
    <input type="button" value="减1" @click="subtract"/>

    <h2> count = {{$store.state.count}} </h2>
</div>
</template>

<script>
export default {
    // 以前count变量来自本组件data区,现在从vuex中取值
    /*data() {
        return {
            //count: 1
        }
    },
    methods: {
        increment() {
            this.count++;
        },
        subtract() {
            this.count--;
        }

    }*/

    // 使用vuex后
    methods: {
        increment() {
            this.$store.commit(‘incr‘);
        },
        subtract() {
            // 第二参数:给sub方法传参;注意,只能传一个参数。
            this.$store.commit(‘sub‘, 2);
        }
    }

}
</script>

<style></style>

3、使用getters包装数据并总结vuex的使用方式

原文地址:https://www.cnblogs.com/xy-ouyang/p/11267052.html

时间: 2024-07-30 08:28:56

状态管理-vuex的相关文章

Vue状态管理vuex

转: https://www.cnblogs.com/xiaohuochai/p/7554127.html 前面的话 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue提供了vuex.本文将详细介绍Vue状态管理vuex 引入 当访问数据对象时,一个 Vue 实例只是简单的代理访问.所以,如果有一处需要被多个实例间共享的状态,可以简单地通过维护一份数据来实现共享 const sourceOfTruth = {} const vmA = new

结合项目学习vue2(路由vue-router,状态管理vuex)

前期: index.html <div id="app"> <h1>{{intro}}</h1> <router-view></router-view> </div> app.js var App = new Vue({ router,//router:router的缩写 //传一个路由属性给 Vue 实例,路由现在被定义为一个在 router 实例里的一个routes 选项数组 data: { intro: &q

Vue中状态管理——Vuex

vuex是一个专门为vue.js设计的状态管理模式,并且也可以使用devtools进行调试. 在vuex出现之前,vue里面的状态是属于'单向数据流'.举个官网的例子: new Vue({ // state data () { return { count: 0 } }, // view template: `<div>{{ count }} </div`, // actions methods: { increment () { this.count++ } } }) 其中 state

vue.js的状态管理vuex中store的使用

一.状态管理(vuex)简介 vuex是专为vue.js应用程序开发的状态管理模式.它采用集中存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.vuex也集成刀vue的官方调试工具devtools extension,提供了诸如零配置的time-travel调试.状态快照导入导出等高级调试功能. 二.状态管理核心 状态管理有5个核心,分别是state.getter.mutation.action以及module.分别简单的介绍一下它们: 1.state state为

Vue学习日记(四)——Vue状态管理vuex

前言 先说句前话,如果不是接触大型项目,不需要有多个子页面,不使用vuex也是完全可以的. 说实在话,我在阅读vuex文档的时候,也很难以去理解vuex,甚至觉得没有使用它我也可以.但是直到我在项目碰到下面这些问题: 当路由切换的时候,原本路由的数据太多,传递过去太麻烦. 有些数据是多个路由需要用到的,那我就需要从后台获取多次数据 当然,这些问题都可以解决,就是在实例化vue对象的时候,就将这些数据绑定在window对象上面.但是我们也不得不设想: 万一数据太多了,那么可阅读性是不是会下降 如果

状态管理vuex

官方文档 1. State vuex 使用单一状态树--是的,用一个对象就包含了全部的应用层级状态. 1.1. 最简单的获取store实例中状态的方法 // 创建一个 Counter 组件,在computed中返回. const Counter = { template: `<div>{{ count }}</div>`, computed: { count () { //vuex的状态存储是响应式的 return store.state.count } } } 1.2. mapS

vuex:一篇看懂vuejs的状态管理神器

关于vuex类的新闻最近很多,看到眼热就去查了下资料,然后扯出来一堆flux.redux.state.state之类的概念,以及大型工程必要性之类的.看官方手册也是昏昏然. 然而,我还是弄懂了!我准备从demo出发,以同样的一个最简单的demo,演示两种情况下的代码编写情况: 单纯依赖于vue.js 依赖vue.js,也使用了vuex技术 目的是通过对比引出vuex的概念.优势和劣势.也许这是目前最接地气的vuex的介绍吧:).所以无论如何在了解vuex之前,你必须懂得vue.js(好像废话:)

Vuex 模块化实现待办事项的状态管理

在vue里,组件之间的作用域是独立的,父组件跟子组件之间的通讯可以通过prop属性来传参,但是在兄弟组件之间通讯就比较麻烦了.比如A组件要告诉一件事给B组件,那么A就要先告诉他们的爸组件,然后爸组件再告诉B.当组件比较多,要互相通讯的事情很多的话,爸组件要管他们那么多事,很累的.vuex正是为了解决这个问题,让多个子组件之间可以方便的通讯. 原文作者:林鑫,作者博客:https://github.com/lin-xin/blog 项目介绍 待办事项中的一个事件,它可能拥有几个状态,未完成.已完成

vue组件化开发-vuex状态管理库

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试.状态快照导入导出等高级调试功能. 以上是vuex的官方文档对vuex的介绍,官方文档对vuex的用法进行了详细的说明.这里就不再细讲vuex的各个用法,写这篇博客的目的只是帮助部分同学更快地理解并上手vuex.