Vue:初次使用vueX

什么是vueX

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 是专门为 Vue.js 设计的状态管理库,以利用 Vue.js 的细粒度数据响应机制来进行高效的状态更新。

vueX的组成

主要分为三个部分:

  • state,驱动应用的数据源;
  • view,以声明方式将 state 映射到视图;
  • actions,响应在 view 上的用户输入导致的状态变化。

vueX使用场景

如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。

一个简单的 global event bus 就足够您所需了。但是,如果您需要构建是一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。

vueX应用

每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。

由于项目刚刚开始,只是用来存储一些状态。后期如果遇到什么问题,会继续补全。

npm install --save vuex

上述是通过npm安装的vueX,引入:

import Vuex from ‘vuex‘
import Vue from ‘vue‘

Vue.use(Vuex)

接着我们应该创建我们的仓库‘store’

const store = new Vuex.Store({
    state:{
        isChoose:true,
        userInfo:{},
        count:0,
        all_url:‘http://localhost:8080/#/home/‘
        // all_url:‘https://ap.t-house.cn/‘,
        // test_url:‘https://ap.dev.t-house.cn/‘
    },
    mutations:{
        /*更改 Vuex 的 store 中的状态的唯一方法是提交
         mutation。每一个mutation都有一个字符串的事件
         类型(type)和一个回调函数(handler)。
         mutation是同步操作*/
        /*increment (state) {
          // 变更状态
          state.count++;
        },*/
        /*你不能直接调用一个 mutation handler。这个选项
        更像是事件注册:“当触发一个类型为 increment 的
        mutation 时,调用此函数。”要唤醒一个
        mutation handler,你需要以相应的 type 调用
        store.commit 方法:store.commit("")
        */
        /*同时你也可以想commit传递额外参数,即载荷(payload)
        */
        /*increments (state,n) {
          // 变更状态
          console.log(state.count)
          state.count+=n;
        }*/
    },
    actions:{
        /*action和mutation类似。
        区别在于:action是异步操作;
                  action提交并不直接改变状态
        */
        increment(context){
            console.log(context)
            context.commit(‘increments‘)
        }
    }
})

mutation可以通过store.commit("increments")激活

action可以通过store.dispatch(‘increment‘)激活

在store中,我们可以声明一些全局变量,这样便于我们后期维护和修改。

官方文档

时间: 2024-10-15 20:31:07

Vue:初次使用vueX的相关文章

学习vue必备技能vuex

首先我们先用vue-cli搭建项目,安装vuex,安装依赖(这里不一一讲解),然后在src下建立/vuex/store.js,里面代码截图 最简单的引入vue,引入vuex,定义两个对象,一个state(数据状态),一个mutations(改变数据方法),最后export,因为我们别的地方要用 ,比较简单的一个实例,也是比较经典的实例,点击加减改变state里面的值, 红色部分是比较麻烦一点的写法,但是比较容易理解,下面inport之后,我们直接在页面上显示和这个{{  }}类似, 然后comm

Vue状态管理vuex

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

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

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

Vue入门之Vuex实战

引言 Vue组件化做的确实非常彻底,它独有的vue单文件组件也是做的非常有特色.组件化的同时带来的是:组件之间的数据共享和通信的难题. 尤其Vue组件设计的就是,父组件通过子组件的prop进行传递数据,而且数据传递是单向的.也就是说:父组件可以把数据传递给子组件,但是 反之则不同.如下图所示: 单向数据流动 单方向的数据流动带来了非常简洁和清晰的数据流,纯展示性或者独立性较强的模块的开发确实非常方便和省事. 但是复杂的页面逻辑,组件之间的数据共享处理就会需要通过事件总线的方式解决或者使用Vue的

vue学习 之 vuex安装及使用

1.安装  vuex npm install vuex --save 2.为什么使用vuex vue 包括  data()状态:template(视图):methods(方法).一个简单的单项数据流概念 但是当我们的应用遇到多个组件共享状态时.单项数据流 容易 破坏. 3. 使用vuex 再main.js 中注入 vuex import Vuex from 'vuex' Vue.use(Vuex) 在src 下创建文件夹store:创建store.js import Vue from 'vue'

vue part5.2 vuex todolist 改写

代码 main部分 index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="stylesheet" href="./st

Vue学习之VueX

单向数据流概念 Vuex介绍 解决问题 多个视图依赖于同一状态(菜单导航) 来自不同视图的行为需要变更为同意状态(例如:评论弹幕) Vuex应运而生 为vue.js开发的状态管理模式 组件状态集中管理 组件状态改变遵循统一的规则 store.js { //组件的状态 state: { }, //改变状态的方法集 mutations: { }, actions: { } } 参考https://www.imooc.com/video/18564 原文地址:https://www.cnblogs.c

从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十三║Vue实战:Vuex 其实很简单

系列教程一目录:.netcore+vue 前后端分离 系列教程二目录:DDD领域驱动设计 系列教程三目录:Nuxt.js TiBug系统 系列教程四目录:VueAdmin 后台管理系统 系列教程五目录:IdentityServer4 授权服务器 本文梯子 前言 零.今天要完成实战1中的红色部分 一.常见的 Vue 表单提交是如何设计的? 1.表单.按钮等在一个组件内 2.按钮在父组件.表单在单独的子组件内 二.通过 $emit 修改父组件数据 1.在原来代码里 About.vue 修改成 For

【实战】Vue全家桶(vue + axios + vue-router + vuex)搭建移动端H5项目

使用Vue全家桶开发移动端页面. 本博文默认已安装node.js. github链接 一.准备工作 安装vue npm install vue 安装脚手架vue-cli npm install -g @vue/cli 创建webpack项目 vue init webpack my-app 运行 cd my-app npm run dev 按照提示,在浏览器打开http://localhost:8082/,效果如下: 安装状态管理vuex npm install vuex --save-dev 目