• vuex store


    index.ts

    import { createStore } from 'vuex'
    
    const store = createStore({
        // strict:true,
        // strict:process.env.NODE_NEV !== 'production',
        // 全局共享的状态(数据)存放
        state: {
            counter : 0
        },
        getters: {
        },
        // 同步提交状态
        mutations: {
          //加1
          INCREMENT(state){
            state.counter++;
          },
          //减1
          DECREMENT(state){
            state.counter--;
          },
          //加2
          INCREMENT2(state,num){
            setTimeout(()=>{
              state.counter+=num;
            },2000)
    
            // state.counter+=num;
          },
        },
        // 提交操作(可以是同步也可以是异步)给mutations
        actions: {
          //加1
          increment({commit}){
            commit('INCREMENT');
          },
          //减1
          decrement({commit}){
            commit('DECREMENT');
          },
          //加2
          increment2({commit}){
            commit('INCREMENT2');
    
            // setTimeout(()=>{
            //   commit('INCREMENT2');
            // },2000)
          },
        },
        modules: {
        }
    });
    export default store

    about.vue

    <template>
      <div class="about">
        <h1>This is an about page</h1>
        <h2>{{$store.state.counter}}</h2>
        <button @click="add">++</button>
        <button @click="sub">--</button>
        <button @click="add2(100)">+++</button>
      </div>
    </template>
    
    <script>
    import {useStore} from 'vuex';
    
      export default {
        setup(){
          const store = useStore();
    
          const add = ()=>{
            store.dispatch('increment');
            // store.commit('INCREMENT');
          }
    
          const sub = ()=>{
            store.dispatch('decrement');
            // store.commit('DECREMENT');
          }
    
          const add2 = (num)=>{
            // store.dispatch('increment2',num);
            store.commit('INCREMENT2',num);
          }
    
          return{
            add,
            add2,
            sub
          }
        }
      }
    </script>

    main.ts

    import { createApp } from 'vue'
    import App from './App.vue'
    import router from './router'
    import store from './store'
    
    createApp(App).use(store).use(router).mount('#app')

    .eslintrc.js

    module.exports = {
      root: true,
      env: {
        node: true
      },
      extends: [
        'plugin:vue/vue3-essential',
        // '@vue/standard',
        '@vue/typescript/recommended'
      ],
      parserOptions: {
        ecmaVersion: 2020
      },
      rules: {
        'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
        'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
      }
    }
  • 相关阅读:
    Java中try-catch-finally的一点理解
    子类继承父类的私有属性
    Java中的String[] args
    Java类和类成员的访问权限修饰符
    JAVA中抽象类与接口的区别
    Java C# .net 和 C C++ 跨平台的区别
    Java中的instanceof关键字
    深入理解JAVA的多态性[转]
    Linux文件系统的目录结构
    硬盘分区
  • 原文地址:https://www.cnblogs.com/mingforyou/p/15253387.html
Copyright © 2020-2023  润新知