vuex介绍和vuex数据传输流程

import Vue from "vue";
import Vuex from "vuex";
import axios from "axios";
Vue.use(Vuex);
const store = new Vuex.store({
//配置项(vuex中5个属性,这里只说三个)
//公共仓库,储存数据
state:{
n:10
},
//处理异步函数和业务逻辑,里面的参数都是函数
actions:{ },
//主要用来修改state中的数据
mutations:{ }
})
export default store;
main.js:
import store from "./store/";
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>'
})
//挂载完成后,vue实例中增加了$store,即可通过this.$store来访问store对象的各种属性和方法
这个可以拿到store中数据,就可以在组件中进行页面的渲染 {{this.$store.state.n}} //100 --->state--->components
二、vuex数据传递流程:
如果组件中想要修改state中数据的值:
<template>
<div class="hello">
<h2>home</h2>
<h3>{{this.$store.state.n}}</h3>
<button @click="handleClick()">修改</button>
</div>
</template>
你可能会想到在methods:{}中写handleClick函数修改,但这样是不行的。
原因:违反了vuex单向数据流的特点。 在当前组件中修改公共仓库state的值后,所有组件页面上的值都改变了,
如果程序出现错误,错误会无法捕获。
所以要遵循vuex的特点数据传递流程进行修改。
---> components--->actions
methods:{
handleClick(){
this.$store.dispatch("handleAdd") //通过dispatch调用actions里的方法
}
}
actions:{
handleAdd(){
console.log("actions里的方法被调用了")
}
}
---> actions ---> mutations
actions:{
handleAdd({commit},params){ //第一个参数是个对象,解构赋值拿到对象中的commit;第二个参数是传递给mutations的参数
commit("handlMutationseAdd") //通过commit调用 mutations里的方法
}
}
mutations:{
handlMutationseAdd(state,params){ //vuex中state属性 params:commit触发时,传递过来的数据
console.log("mutations被调用了",params)
state.n++;
console.log(state.n)
}
}
到此组件修改state中的数据完成,点击一次修改按钮n加1
接着页面上的数据重新进行了渲染----符合了vuex的特点数据是响应式的
5、总结下vuex数据传输流程
vuex介绍和vuex数据传输流程的更多相关文章
- vue2.0 axios封装、vuex介绍
一.前言 博主也是vue道路上的行者,道行不深,希望自己的东西能对大家有所帮助.这篇博客针对 了解过vue基础,但是没有做过vue项目的童鞋.如果想看基础指令,可以看我之前的一篇博客,请点击 跳转, ...
- vuex介绍
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 ...
- vuex 介绍
vuex是为vue.js开发的状态管理模式,负责vue的状态管理,状态管理是干啥的呢,举个栗子,比如一个酒店,哪间屋子入住了客人,哪间屋子客人退房了,客人退房后,房间有没有清扫过,这些都需要去记录,以 ...
- 手摸手教你在vue-cli里面使用vuex,以及vuex简介
写在前面: 这篇文章是在vue-cli里面使用vuex的一个极简demo,附带一些vuex的简单介绍.有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家. 本文首发于我的个人 ...
- vuex基础(vuex基本结构与调用)
import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const modulesA = { state:{//状态 count: ...
- vuex教程,vuex使用介绍案例
1.demopageaction: import Vue from "vue"; import Store from "../../store.js"; imp ...
- vuex介绍--一篇看懂vuejs的状态管理神器
原文,请点击此链接http://www.ituring.com.cn/article/273487
- Linux--网络基础(概念+协议的了解+OSI七层模型,TCP/IP五层协议,网络数据传输流程)
网络的发展 网络的发展有下面几个阶段: 独立模式:计算机最开始是以单机模式被广泛使用的.每一台计算机都是独立的,之间不能够进行数据共享与通信 网络互联: 计算机之间可以链接在一起,完成数据共享,计算机 ...
- 个人介绍和Github使用流程
我叫石莉静,来自网络工程143班,学号1413042067 我的兴趣爱好有看电影.动漫,听音乐,摄影,寻找美食等等. 个人编程能力:非常真诚的说,我的编程能力蛮差的,用C++写过一共写过...(很少很 ...
随机推荐
- shell基础练习题
shell 基础练习题 1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 #!/bin ...
- nginx 日志文件分隔
Nginx命令 Nginx命令帮助如下 nginx -h nginx version: nginx/0.8.45 Usage: nginx [-?hvVt] [-s signal] [-c filen ...
- i++ 是线程安全的吗
相信很多中高级的 Java 面试者都遇到过这个问题,很多对这个不是很清楚的肯定是一脸蒙逼.内心肯定还在质疑,i++ 居然还有线程安全问题?只能说自己了解的不够多,自己的水平有限. 先来看下面的示例来验 ...
- maven使用常见问题
1.我写的是src/main/java/config/mybatis-cofig.xml 但总是报错 Could not find resource src/main/java/config/myba ...
- Xcode升级10.3后XIB文件报错
Xcode升级10.3后XiB文件包错,提示: Failed to find or create execution context for description '<IBCocoaTouch ...
- leetcode 134 加油站问题
leetcode 134 解析 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 co ...
- 硬件-硬盘-SSD(固态硬盘):百科
ylbtech-硬件-硬盘-SSD(固态硬盘):百科 固态驱动器(Solid State Disk或Solid State Drive,简称SSD),俗称固态硬盘,固态硬盘是用固态电子存储芯片阵列而制 ...
- 数据库之SQL语句查询基础
人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想. 人没有梦想是荒废的,是漫无目的的,拥有梦想你会飞的更远. 下面我就来为大家介绍一下SQL语句的查询基础,以下使用MySchool数据 ...
- Jmeter JDBC请求---把数据库结果参数化传递到其他请求
摘要: 最近一个场景进行压力测试:生成商品id进行上下架和购买,记录写脚本的一个过程 1.在商品上架前需要准备商品ID,商品ID生成需要从数据库读取商品类别,从而生成商品ID,下面是从数据库:读取商品 ...
- mysql数据库自带数据库介绍
show databases:查看mysql自带数据库有information_schema,mysql, performance_schema, test information_schema数据库 ...