状态管理Vuex

官网:Vuex 是什么? | Vuex (vuejs.org)icon-default.png?t=N7T8https://v3.vuex.vuejs.org/zh/

创建一个vue2的新项目名为vuex-demo,安装命令 npm install vuex@3

新建index.js

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)const store = new Vuex.Store({state: {count: 0},mutations: {increment (state) {state.count++}}})export default store

修改main.js,注入

import Vue from 'vue'
import App from './App.vue'
import store from './store'Vue.config.productionTip = falsenew Vue({render: h => h(App),store: store
}).$mount('#app')

HelloWorld.vue修改

<template><div class="hello">{{ this.$store.state.count }}<button @click="add">+1</button></div>
</template><script>
export default {name: 'HelloWorld',methods: {add() {this.$store.commit('increment') // commit mutation  }} 
}
</script><style scoped>  </style>

App.vue修改

<template><div id="app"><HelloWorld/></div>
</template><script>
import HelloWorld from './components/HelloWorld.vue'export default {name: 'App',components: {HelloWorld}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

运行

 修改HelloWorld.vue

<template><div class="hello"><!-- {{ this.$store.state.count }} -->{{ count }}<button @click="add">+1</button></div>
</template><script>
export default {name: 'HelloWorld',computed: {count() {return this.$store.state.count // access state}},methods: {add() {this.$store.commit('increment') // commit mutation  }} 
}
</script><style scoped>  </style>

 刷新,效果不变

 修改HelloWorld.vue,效果还是不变 

<template><div class="hello"><!-- {{ this.$store.state.count }} -->{{ count }}<button @click="add">+1</button></div>
</template><script>import { mapState } from 'vuex';export default {name: 'HelloWorld',computed:mapState(['count']),// computed: {//   count() {//     return this.$store.state.count // access state//   }// },methods: {add() {this.$store.commit('increment') // commit mutation  }} 
}
</script><style scoped>  </style>

修改index.js

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)const store = new Vuex.Store({state: {count: 0,todos: [{ id: 1, text: '吃饭', done: true },{ id: 2, text: '睡觉', done: false }]},mutations: {increment (state) {state.count++}}})export default store

修改HelloWorld.vue

<template><div class="hello"><!-- {{ this.$store.state.count }} -->{{ count }}<button @click="add">+1</button><ul><li v-for="todo in todos" :key="todo.id">{{ todo.text }}</li></ul></div>
</template><script>import { mapState } from 'vuex';export default {name: 'HelloWorld',computed:mapState(['count','todos']),methods: {add() {this.$store.commit('increment') // commit mutation  }} 
}
</script><style scoped>  </style>

 修改

 修改index.js

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)const store = new Vuex.Store({state: {count: 0,todos: [{ id: 1, text: '吃饭', done: true },{ id: 2, text: '睡觉', done: false }]},mutations: {increment (state) {state.count++}},  getters: {doneTodos: state => {return state.todos.filter(todo => todo.done)}}})export default store

 修改HelloWorld.vue

<template><div class="hello"><!-- {{ this.$store.state.count }} -->{{ count }}<button @click="add">+1</button><ul><li v-for="todo in doneTodos" :key="todo.id">{{ todo.text }}</li></ul></div>
</template><script>import { mapState,mapGetters} from 'vuex';export default {name: 'HelloWorld',computed:{
...mapState(['count','todos']),
...mapGetters(['doneTodos'])methods: {add() {this.$store.commit('increment') // commit mutation  }} 
}
</script><style scoped>  </style>

刷新

 修改index.js,每次加2

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)const store = new Vuex.Store({state: {count: 0,todos: [{ id: 1, text: '吃饭', done: true },{ id: 2, text: '睡觉', done: false }]},mutations: {increment (state,n) {state.count += n}},  getters: {doneTodos: state => {return state.todos.filter(todo => todo.done)}}})export default store

  修改HelloWorld.vue

<template><div class="hello"><!-- {{ this.$store.state.count }} -->{{ count }}<button @click="add">+1</button><ul><li v-for="todo in doneTodos" :key="todo.id">{{ todo.text }}</li></ul></div>
</template><script>import { mapState,mapGetters} from 'vuex';export default {name: 'HelloWorld',// computed:mapState(['count','todos']),computed:{
...mapState(['count','todos']),
...mapGetters(['doneTodos'])},// computed: {//   count() {//     return this.$store.state.count // access state//   }// },methods: {add() {this.$store.commit('increment',2) // commit mutation  }} 
}
</script><style scoped>  </style>

 刷新,每次加2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/26069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录自己在xss-labs的通关记录

第十一关&#xff08;referer&#xff09; 直接查看网页源代码&#xff0c;发现四个input被隐藏&#xff0c;不难看出&#xff0c;第四个名为t_ref的<input>标签是http头referer的参数&#xff08;就是由啥地址转跳到这里的&#xff0c;http头的referer会记录有&#xf…

操作系统安全:Windows系统安全配置,Windows安全基线检查加固

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

如何用R语言ggplot2画折线图

文章目录 前言一、数据集二、ggplot2画图1、全部代码2、细节拆分1&#xff09;导包2&#xff09;创建图形对象3&#xff09;主题设置4&#xff09;轴设置5&#xff09;图例设置6&#xff09;颜色7&#xff09;保存图片 前言 一、数据集 数据下载链接见文章顶部 数据&#xff1a…

STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建

STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建 文章目录 STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建功能与作用典型工作流程 1. 硬件原理图介绍2. STM32 CubeMX工程搭建2.1 创建工程2.2 系统配置2.3 USART串口配…

tokenization(一)概述

文章目录 背景基于词&#xff08;Word-based&#xff09;基于字符&#xff08;Character-based&#xff09;子词词元化&#xff08;Subword tokenization&#xff09; 背景 tokenization是包括大语言模型在内所有自然语言处理的任务的基础步骤&#xff0c;其目标是将文本数据转…

【面试干货】聚集索引和非聚集索引区别?

【面试干货】聚集索引和非聚集索引区别? 1、聚集索引&#xff08;Clustered Index&#xff09;1.1 特点1.2 例子 2、非聚集索引&#xff08;Nonclustered Index&#xff09;2.1 特点2.2 例子 3、根本区别 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&…

Sklearn的安装和用法

安装sklearn相对简单&#xff0c;因为它是一个Python库&#xff0c;可以通过Python的包管理器pip来安装。 Windows、macOS和Linux通用步骤&#xff1a; 确保Python已安装&#xff1a; sklearn是基于Python的&#xff0c;所以首先确保你的计算机上安装了Python。推荐使用Pytho…

NLP——电影评论情感分析

python-tensorflow2.0 numpy 1.19.1 tensorflow 2.0.0 导入库 数据加载 数据处理 构建模型 训练 评估 预测 1.基于2层dropout神经网络 2.基于LSTM的网络 #导入需要用到的库 import os import tarfile import urllib. request import tensorflow as tf import numpy a…

5W-35W-150W-300W-500W铝壳功率电阻器

带铝制外壳的电阻器 EAK采用铝型材的导线电阻器将久经考验的导线材料的高脉冲稳定性与优化的导热和高度保护相结合。安装在导热表面上可进一步改善散热并提高稳定性。 连接线有各种长度和材料可供选择。可选配集成温度开关。也可根据客户要求提供定制组件。 该产品有多种版本…

CVE-2023-37474(目录遍历)

靶场简介 Copyparty是一个可移植的文件服务器。在1.8.2版本之前的版本存在一个CTF技巧&#xff0c;该漏洞位于.cpr子文件夹中。路径遍历攻击技术允许攻击者访问位于Web文档根目录之外的文件、目录. 靶场 进入靶场 根据简介访问.cpr目录 使用curl命令访问etc/passwd文件 确定…

kettle_Hbase

kettle_Hbase ☀Hbase学习笔记 读取hdfs文件并将sal大于1000的数据保存到hbase中 前置说明&#xff1a; 1.需要配置HadoopConnect 将集群中的/usr/local/soft/hbase-1.4.6/conf/hbase-site.xml复制至Kettle中的 Kettle\pdi-ce-8.2.0.0-342\data-integration\plugins\pentah…

8.1 基本打印功能

本文仅供学习交流&#xff0c;严禁用于商业用途&#xff0c;如本文涉及侵权请及时联系本人将于及时删除 在使用“MFC应用”项目模板生成应用程序的过程中&#xff0c;如果在“高级功能”窗口中不取消对打印和打印预览的设置&#xff0c;那么应用程序就已经具备了简单的打印和打…

MySQL—多表查询—练习(2)

一、引言 接着上篇博客《 MySQL多表查询——练习&#xff08;1&#xff09;》继续完成剩下的案例需求。 二、案例 &#xff08;0&#xff09;三张表&#xff08;员工表、部门表、薪资等级表&#xff09; 员工表&#xff1a;emp 部门表&#xff1a;dept 薪资等级表&#xff1a;…

使用 PlatformIO 将文件上传到 ESP32-S3 的 SPIFFS 文件系统

PlatformIO环境 将文件上传到 ESP32-S3 的 SPIFFS 文件系统 介绍&#xff1a; PlatformIO 是一个流行的开发平台&#xff0c;用于编写、构建和上传嵌入式项目。ESP32-S3 是 Espressif 推出的一款功能强大的嵌入式开发板&#xff0c;具有丰富的外设和通信接口。本文将介绍如何…

前端 JS 经典:动态执行 JS

前言&#xff1a;怎么将字符串当代码执行。有 4 中方式实现 eval、setTimeout、创建 script 标签、new Function 1. eval 特点&#xff1a;同步执行&#xff0c;当前作用域 var name "yq"; function exec(string) {var name "yqcoder";eval(string); …

认识Spring中的BeanFactoryPostProcessor

先看下AI的介绍 在Spring 5.3.x中&#xff0c;BeanFactoryPostProcessor是一个重要的接口&#xff0c;用于在Spring IoC容器实例化任何bean之前&#xff0c;读取bean的定义&#xff08;配置元数据&#xff09;&#xff0c;并可能对其进行修改。以下是关于BeanFactoryPostProce…

【学习笔记】finalshell上传文件夹、上传文件失败或速度为0

出现标题所述的情况&#xff0c;大概率是finalshell上传文件的过程中的权限不够。 可参照&#xff1a;Finalshell上传文件失败或者进度总为百分之零解决方法 如果不成功&#xff0c;建议关闭客户端重试。 同时建议在设置finalshell的ssh连接时根据不同用户设置多个连接&#xf…

OJ刷题——2086.AI=?、2087.剪花布条、KPM算法

2086.AI&#xff1f; 题目描述 Problem - 2086 运行代码 #include <iostream> #include <cstdio> using namespace std; const int N 3005; int main() {int n;double Ao, An;double num[N];while (cin>>n) {cin >> Ao>>An;for (int i 1; i…

kubernetes(k8s)集群部署(2)

目录 k8s集群类型 k8s集群规划&#xff1a; 1.基础环境准备&#xff1a; &#xff08;1&#xff09;保证可以连接外网 &#xff08;2&#xff09;关闭禁用防火墙和selinux &#xff08;3&#xff09;同步阿里云服务器时间&#xff08;达到集群之间时间同步&#xff09; &…

html+CSS+js部分基础运用20

根据下方页面效果如图1所示&#xff0c;编写程序&#xff0c;代码放入图片下方表格内 图1.效果图 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" conte…