惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 此夏_唯美

新概念英语3单词表 git回滚代码 git常用命令大全 element动态表单验证一 vue+element+Cascader 级联选择器任意一级选项,去掉单选框radio vue+wangEditor编辑器,上传图片请求后台接口 vue3+vant3封装省市区组件 前端工具vscode将英文设置中文简单方便 vue3打包后一片空白控制台报错 vue实现自定义字体库 element-ui跨行 - 此夏_唯美 Element-ui树形控件el-tree鼠标移入显示隐藏效果超简单 vue表格拖拽使用Sortable插件库 Vue+Element+Table表格动态跨列文章 vue框架文字滚动插件 vue项目浏览器ioc小图标 vue搭建项目iview+axios+less vue移动端在线签名 Vue中的input输入框无法输入强制渲染
vue3+vant4+vuex4入门案例
此夏_唯美 · 2023-06-05 · via 博客园 - 此夏_唯美

案例用的是vant-ui库,你可换成你自己用的ui库即可。

安装vuex依赖包

npm install vuex --save

main.js引用vuex,并挂载到vue中

import store from './store';
app.use(router).use(store);

 add.vue页面:

 1 <template>
 2   <h2>加法{{ $store.getters.showNum }}</h2>
 3   <h5>当前最新的count值为:{{ $store.state.count }}</h5>
 4   <van-row>
 5     <van-col span="4">
 6       <van-button type="primary" size="small" block @click="onClickAdd">+1</van-button>
 7     </van-col>
 8     <van-col span="4" offset="1">
 9       <van-button type="primary" size="small" block @click="onClickAddN">+N</van-button>
10     </van-col>
11 
12     <van-col span="4" offset="1">
13       <van-button type="primary" block @click="onClickAddAsync" size="small"
14         >异步</van-button
15       ></van-col
16     >
17     <van-col span="5" offset="1">
18       <van-button type="primary" block @click="onClickAddAsyncN" size="small"
19         >异步N</van-button
20       ></van-col
21     >
22   </van-row>
23 </template>
24 <script>
25 import { useStore } from 'vuex'
26 export default {
27   setup() {
28     const store = useStore()
29     function onClickAdd() {
30       store.commit('add')
31     }
32     function onClickAddN() {
33       store.commit('addN', 3)
34     }
35     function onClickAddAsync() {
36       store.dispatch('addAsync')
37     }
38     function onClickAddAsyncN() {
39       store.dispatch('addAsyncN', 5)
40     }
41     return {
42       onClickAdd,
43       onClickAddN,
44       onClickAddAsync,
45       onClickAddAsyncN,
46     }
47   },
48 }
49 </script>

 reduce.vue页面:

 1 <template>
 2   <h2>减法{{ showNum }}</h2>
 3   <h5>当前最新的count值为:{{ count }}</h5>
 4   <van-row>
 5     <van-col span="4">
 6       <van-button type="primary" size="small" block @click="reduce">-1</van-button>
 7     </van-col>
 8     <van-col span="4" offset="1">
 9       <van-button type="primary" size="small" block @click="reduceN(4)">-N</van-button>
10     </van-col>
11     <van-col span="4" offset="1">
12       <van-button type="primary" size="small" block @click="reduceAsync">异步</van-button>
13     </van-col>
14     <van-col span="5" offset="1">
15       <van-button type="primary" size="small" block @click="reduceAsyncN(5)"
16         >异步N</van-button
17       >
18     </van-col>
19   </van-row>
20 </template>
21 <script>
22 import { useStore, mapState, mapMutations, mapActions, mapGetters } from 'vuex'
23 export default {
24   setup() {
25     const store = useStore()
26   },
27   methods: {
28     ...mapMutations(['reduce', 'reduceN']),
29     ...mapActions(['reduceAsync', 'reduceAsyncN']),
30   },
31   computed: {
32     ...mapState(['count']),
33     ...mapGetters(['showNum']),
34   },
35 }
36 </script>

            

                   QQ群:659182980                                               微信群 :扫一扫即可添加入群

         欢迎扫码加群,一起讨论,共同学习成长!