vue脚手架

npm install -g vue-cli

usage:

vue init

example:

vue init webpack myvue

安装vuex:

npm i -S vuex

详情看官网:

https://vuex.vuejs.org/zh/guide/

使用main.js 引入store,注册实例store

import Vue from 'vue'
import App from './App'
import router from './router'
import store from "./store"; Vue.config.productionTip = false /* eslint-disable no-new */
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>'
})

src中创建store文件夹,文件夹中创建index.js

import Vue from 'vue';
import Vuex from 'vuex'; Vue.use(Vuex); let store = new Vuex.Store({
state:{
msg:'vuex测试文件',
todos: [
{ id: 1, text: '...', done: true },
{ id: 2, text: '...', done: false }
]
},
getters:{
doneTodos: state => {
console.log(23333)
return state.todos.filter(todo => todo.done)
}
},
mutations:{
changeMutation(state,payload){
//state.msg = "vuex测试文件change";
state.msg = payload.tmp;
console.log(123,state.msg,payload)//{tmp:"vuex测试文件change"}
},
},
actions:{
changeAction({commit},payload){
commit("changeMutation",{tmp:"vuex测试文件change"});
console.log(123,payload)//undefined
},
},
modules:{},
}) export default store;

components文件夹中的About.vue

<template>
<div class="hello">
<h1>{{ msg }}</h1> <h2 @click='change({tmp:"vuex测试文件change"})' >vuex-test</h2>
<div>{{this.$store.state.msg}}</div>
</div>
</template> <script>
import Vue from 'vue';
import {mapActions,mapMutations,mapState,mapGetters} from "vuex"; export default {
name: 'About',
data () {
return {
msg: 'Hellow world'
}
},
methods:{
test(){
//console.log(1,this.$route.params);
//console.log(2,this.$route.query.name);
//console.log(3,this.$store.state.msg)
//console.log(this.msg)
// console.log(this.$store.getters.doneTodos) },
//change({tmp:"vuex测试文件change"})中的参数映射到changeAction({commit},payload){}中的payload
...mapActions({change:"changeAction"}),
//...getActions() },
computed:{
...mapState({
//设置state的msg值为store的state.msg
msg2: state => state.msg
}),
//...mapGetters({rename:"doneTodos"}),
...mapGetters(["doneTodos"]), },
updated(){
this.test();
//this.rename;
this.doneTodos
},
mounted(){
//this.test(); } }
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
font-weight: normal;
} </style>

Module

Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割:

const moduleA = {
state: { ... },
mutations: { ... },
actions: { ... },
getters: { ... }
} const moduleB = {
state: { ... },
mutations: { ... },
actions: { ... }
} const store = new Vuex.Store({
modules: {
a: moduleA,
b: moduleB
}
}) store.state.a // -> moduleA 的状态
store.state.b // -> moduleB 的状态

9、vuex快速上手的更多相关文章

  1. vue.js和vue-router和vuex快速上手知识

    vue.js和vue-router和vuex快速上手知识 一直以来,认为vue相比react而言,学习成本会更低,会更简单,但最近真正接触后,发现vue的各方面都有做一些客户化的优化,有一些亮点,但也 ...

  2. vuex 快速上手,具体使用方法总结(含使用例子)

    网上有关vuex的文章很多,但有些比较复杂,这篇文章能让你快速使用vuex: vuex 用处:管理全局状态(类似全局变量,每个组件都能访问到) vuex 用法: //下面是一个js文件,用最简单最全的 ...

  3. 如何快速上手一个新技术之vue学习经验

    碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...

  4. 【转】Vue.js 2.0 快速上手精华梳理

    Vue.js 2.0 快速上手精华梳理 Sandy 发掘代码技巧:公众号:daimajiqiao 自从Vue2.0发布后,Vue就成了前端领域的热门话题,github也突破了三万的star,那么对于新 ...

  5. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  6. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

  7. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手

    原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...

  8. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  9. 快速上手seajs——简单易用Seajs

    快速上手seajs——简单易用Seajs   原文  http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...

随机推荐

  1. [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.1 引言

    1.  实际的流体与理想流体的主要区别在于: 前者具有粘性 (内摩擦) 和热传导. 2.  内摩擦 (1)  当两层流体有相对运动时, 方有摩擦力; 它是一种内力; 单位面积上所受的内力称为应力; 而 ...

  2. 关于MySql经典高频查询语句的整理

    一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,= ...

  3. 2.13 break和continue

    break和continue 1. break <1> for循环 普通的循环示例如下: name = 'itheima' for x in name: print('----') pri ...

  4. pycharm实用快捷键集锦

    以下是本人需要记录的快捷键,并不针对大众,所以是断断续续补充的,大家看看图个乐呵就成! 生成代码块(Surround with):Ctrl + Alt + t . 历史浏览页面跳转:很多时候,我们需要 ...

  5. JAVA进阶8

    间歇性混吃等死,持续性踌躇满志系列-------------第8天 1.遍历输出HashSet中的全部元素 import java.util.HashSet; import java.util.Ite ...

  6. Xpath初了解

    如下一段html: <html> <body> <form id="loginForm"> <input name="usern ...

  7. Linux Django项目部署

    步骤 .数据库的处理 1.1 上传bbs.sql 1.2 在mysql中创建bbs库,并导入数据库SQL脚本 mysql> create database bbs charset utf8mb4 ...

  8. Windows平台下结合 tortoiseSVN 和 VisualSVN Server 搭建SVN服务器并实现 web 站点同步

    1. tortoiseSVN 关于 tortoiseSVN 的安装使用详见博文 TortoiseSVN的安装及其简单使用. 2. VisualSVN Server 关于 VisualSVN Serve ...

  9. Mysql索引机制(B+Tree)

    1,索引谁实现的: 索引是搜索引擎去实现的,在建立表的时候都会指定,搜索引擎是一种插拔式的,根据自己的选择去决定使用哪一个. 2,索引的定义: 索引是为了加速对表中数据行的检索而创建的一种分散存储的( ...

  10. Jmeter_24个常用函数

    JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__functionName(var1 ...