この記事では主に Vuex の改善学習の章を紹介します。編集者はそれを参考として共有します。編集者をフォローして、皆さんのお役に立てれば幸いです。
前回の記事では、いくつかの簡単なアクションでstore.js内のデータオブジェクトを変更する方法について説明しましたが、実際の作業ではこれではまったく作業のニーズを満たすことができないため、この記事ではその方法について説明します。いくつかの簡単なアクションの判断。
自作のvuexロゴ
1. たとえば、今、count
アクションが必要です
store.jsのアクション内
// 定义 actions ,要执行的动作,如流程的判断、异步请求 const actions ={ increment({commit,state}){ commit('increment') }, decrement({ commit, state }) { // **通过动作改变的数据,在此处来做判断是否提交** if (state.count > 5) { commit('decrement') } } }
プロジェクトを実行します
2.アクションを渡す非同期リクエストをシミュレートします
1. まずApp.vueでイベントを定義します
<template> <p id="app"> <button @click="increment">增加</button> <button @click="decrement">减少</button> //异步请求事件 <button @click="incrementAsync">异步增加</button> <h1>{{count}}</h1> </p> </template> <script> import {mapGetters,mapActions} from 'vuex' export default { name: 'app', computed:mapGetters([ 'count' ]), methods:mapActions([ 'increment', 'decrement', 'incrementAsync' ]) } </script>
2. store.jsのアクションに非同期Promiseイベントを追加します
プロジェクトを実行します
3. データのステータスを取得します
データの奇数と偶数を知る必要がある場合は、ゲッターで判断する必要があります。 ゲッターはステータスを決定するために処理されたデータを取得できます// 定义 actions ,要执行的动作,如流程的判断、异步请求 const actions ={ increment({commit,state}){ commit('increment') }, decrement({ commit, state }) { // **通过动作改变的数据,在此处来做判断是否提交** if (state.count > 5) { commit('decrement') } }, incrementAsync({commit,state}){ // 模拟异步操作 var a = new Promise((resolve,reject) => { setTimeout(() => { resolve(); }, 3000); }) // 3 秒之后提交一次 increment ,也就是执行一次 increment a.then(() => { commit('increment') }).catch(() => { console.log('异步操作失败'); }) } }
var getters={ count(state){ return state.count }, EvenOrOdd(state){ return state.count%2==0 ? '偶数' : '奇数' } }
Vue、Vuex、Vueに基づいてアニメーション切り替え機能を実装-router
以上がVuex 改善学習の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。