首页 > 其他分享 >vue3+vant4+vuex4入门案例

vue3+vant4+vuex4入门案例

时间:2023-06-05 21:11:15浏览次数:35  
标签:count function ... useStore vant4 vue3 vuex4 vuex store

案例用的是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                                               微信群 :扫一扫即可添加入群

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

标签:count,function,...,useStore,vant4,vue3,vuex4,vuex,store
From: https://www.cnblogs.com/CinderellaStory/p/17458932.html

相关文章

  • vue3+vant4+vuex4实现todolist备忘录案例
    案例图片如下:  1<van-cell-group>2<van-cell>3<van-row>4<van-colspan="20">5<van-field6:value="content"7@change="handl......
  • 初识vue3——第一天
    api查询地址api请查阅vue3全部API初始化实例每个Vue应用都是通过createApp函数创建一个新的应用实例://index.html<divid="app"></div><scripttype="module"src="/src/main.js"></script>//main.jsimport{createApp}from'vu......
  • Vue3 setup语法糖下的axios全局设置教程
    Vue3setup语法糖下的axios全局设置教程前言在Vue3的组件式API开发下,this关键词不再适用,网上很多配置axios教程都是以Vue2为基础的,在Vue3下不再适用。近期尝试用组件式API风格写项目,在配置全局axios就遇到了这个问题。经过我反复尝试,查阅官网的文档,终于有了以下解决方法:Vue2......
  • vue3学前准备
    vue3学前准备学习vue3的原因Vue3是一个面向未来的框架:Vue3相比Vue2有更好的性能和更好的扩展性,将来会成为前端开发的主流。改进的响应式系统:Vue3采用了Proxy对象来实现响应式系统,使得性能更高、内存消耗更小、支持动态添加属性等。同时,在Vue3中,开发者也可以更容易地......
  • 完成第一个 Vue3.2 项目后,使用体会
    第一次CompositionAPI在vue3.2中,正式支持了scriptsetup的写法,这样可以大大简化组件的代码量,减少一些重复操作,我认为当你写vue3时,应该把这当作默认写法。在vue3.2之前,一般会这样写。<script>exportdefault{setup(props,ctx){consta=ref(0)//必须......
  • 完成第一个 Vue3.2 项目后,使用体会
    第一次CompositionAPI在vue3.2中,正式支持了scriptsetup的写法,这样可以大大简化组件的代码量,减少一些重复操作,我认为当你写vue3时,应该把这当作默认写法。在vue3.2之前,一般会这样写。<script>exportdefault{setup(props,ctx){consta=ref(0)//必须......
  • vue3全局注册的另一种方式——插件注册
    1.新建一个index.ts,用于管理所有全局组件//引入项目中全部的全局组件importSvgIconfrom"./SvgIcon/index.vue";importPaginationfrom"./Pagination/index.vue";//全局对象constallGlobalComponent=<any>{SvgIcon,Pagination};//对外暴露插件对象exportde......
  • vue3 条件判断语句及v-if与v-show 区别
    <template> <divv-if="type==='a'">aaa</div> <divv-else-if="type==='b'">bbb</div> <divv-else>ccc</div>  <divv-show="flag">111</div> </template>......
  • vue3元素标签属性的绑定
    <template> <divv-bind:id="main"v-bind:class="message">aaa</div></template><script> exportdefault{   data(){      return{         message:'active',         main:'mainid' ......
  • Vue3 模板语法学习
    <template> {{message}} {{number+1}} {{ok?'yes':'no'}}</template><script> exportdefault{   data(){      return{         message:'aaa',         number:10,         ok:false      }   } }&l......