vuexは実は超簡単で、3歩しかかかりません
2930 ワード
前言
これまでのいくつかのプロジェクトでは、コンポーネント間の通信が必要な場所に多少遭遇したが、様々な理由でevent busのコストがvuexよりも高いため、技術的な選択型でvuexを選んだが、なぜかチームの新人がvuexを聞くと、萎縮し始めた.vuexは難しいからだ.本当に難しいですか?今日は簡単な3つのステップでvuexがどれだけ簡単かを証明します.
純粋に個人の経験で、どうしても正しくないところがあって、もし発見があれば、指摘を歓迎します!
初心者向けの入門チュートリアル、入門チュートリアル、入門チュートリアルです
ステップ0
新しいvueプロジェクトを作成し、vuexをインストールします.ここではあまり紹介しません.ポイントを入れることができます.デフォルトでは、これらのスキルを備えています.
最初のステップ
コードは少し多いように見えますが、よく知っているように見えますか?普通のvueと大差ないですか.このステップは実際にstoreを新規作成することですが、私たちはまだプロジェクトで使用していません.
ステップ2
エントリファイルに上記のファイルを導入し、new Vue()に渡されるパラメータを少し変更します.新しい行の後ろにコメントがあります.
Tip: import store from './store'の後ろの住所は、indexですので、上に新しいファイルを作成した場所です(
ステップ3
以上の2つのステップは、実はvuexの基本的な構成が完了しており、次は使用します.
ここは普通のvueファイルです.違いはここでcomputedプロパティで
また、データを変更するには、
まとめ
前例のような意味は何なのか、なぜvueのdataとmethodsを直接使わないのかと思うかもしれません.
上記の例はvuexの使用方法を簡単に説明するためだけなので、いくつかの流れを簡略化して、考えてみてください.もしあなたがこのようなページを持っていたら、全部で10層のコンポーネント(つまり、サブコンポーネントの中にサブコンポーネントがあり、サブコンポーネントの下にサブサブコンポーネントがあり、このように10層を押します)をネストして、最後の層のコンポーネントのデータが変更されました.最初の層のコンポーネントに通知するには、最下層のコンポーネントの
最後に
最後にgetter、action+dispatch、モジュール化などを拡張したいと思っていましたが、このタイトルに合うように、vuexは実は超簡単で、この3歩を飲み終わって、まだ3歩あります.
本文が役に立つと思ったら、本文のgithubにstarを追加してください.ありがとうございます.
また、githubにはフロントエンドに関するチュートリアルやコンポーネントがあります.興味のある子供靴は見てもいいです.あなたたちのサポートが私の最大の原動力です.
これまでのいくつかのプロジェクトでは、コンポーネント間の通信が必要な場所に多少遭遇したが、様々な理由でevent busのコストがvuexよりも高いため、技術的な選択型でvuexを選んだが、なぜかチームの新人がvuexを聞くと、萎縮し始めた.vuexは難しいからだ.本当に難しいですか?今日は簡単な3つのステップでvuexがどれだけ簡単かを証明します.
純粋に個人の経験で、どうしても正しくないところがあって、もし発見があれば、指摘を歓迎します!
初心者向けの入門チュートリアル、入門チュートリアル、入門チュートリアルです
ステップ0
新しいvueプロジェクトを作成し、vuexをインストールします.ここではあまり紹介しません.ポイントを入れることができます.デフォルトでは、これらのスキルを備えています.
最初のステップ
.js
ファイルを新規作成し、名前の位置は任意で、慣例に従って、/src/store
ディレクトリの下で(なければ自分で新規作成することをお勧めします) /src/store/index.js
// vue vuex
import Vue from 'vue'
import Vuex from 'vuex'
// use , ,
Vue.use(Vuex)
// Store
export default new Vuex.Store({
// vue data
state: {
name: 'oldName'
},
// vue mothods( )
mutations: {
updateName (state) {
state.name = 'newName'
}
}
})
コードは少し多いように見えますが、よく知っているように見えますか?普通のvueと大差ないですか.このステップは実際にstoreを新規作成することですが、私たちはまだプロジェクトで使用していません.
ステップ2
エントリファイルに上記のファイルを導入し、new Vue()に渡されるパラメータを少し変更します.新しい行の後ろにコメントがあります.
/src/main.js
(vue-cli自動生成の入口、足場を使わないことができれば、私の説明は必要ありません)import Vue from 'vue'
import App from './App'
import vuexStore from './store' //
new Vue({
el: '#app',
store:vuexStore //
components: { App },
template: ''
})
Tip: import store from './store'の後ろの住所は、indexですので、上に新しいファイルを作成した場所です(
/src/store/index.js
).jsは省略することができる.ステップ3
以上の2つのステップは、実はvuexの基本的な構成が完了しており、次は使用します.
/src/main.js
(同じvue-cliで生成されたapp.vueですが、ここではプレゼンテーションを容易にするために余分なコードを削除します)
{{getName}}
import HelloWorld from './components/HelloWorld'
export default {
computed:{
getName(){
return this.$store.state.name
}
},
methods:{
changeName () {
this.$store.commit('updateName')
}
}
}
ここは普通のvueファイルです.違いはここでcomputedプロパティで
store "data"
を取得する必要があります.また、データを変更するには、
this.xxx = xxx
でthis.$に変更しません.store.commit('updateName') まとめ
前例のような意味は何なのか、なぜvueのdataとmethodsを直接使わないのかと思うかもしれません.
上記の例はvuexの使用方法を簡単に説明するためだけなので、いくつかの流れを簡略化して、考えてみてください.もしあなたがこのようなページを持っていたら、全部で10層のコンポーネント(つまり、サブコンポーネントの中にサブコンポーネントがあり、サブコンポーネントの下にサブサブコンポーネントがあり、このように10層を押します)をネストして、最後の層のコンポーネントのデータが変更されました.最初の層のコンポーネントに通知するには、最下層のコンポーネントの
this.$store.commit()
で、そして最外層のコンポーネントにcomputed属性で対応する値を取得することで、リアルタイムで更新することができる.$emitを重ねる必要はありません.最後に
最後にgetter、action+dispatch、モジュール化などを拡張したいと思っていましたが、このタイトルに合うように、vuexは実は超簡単で、この3歩を飲み終わって、まだ3歩あります.
本文が役に立つと思ったら、本文のgithubにstarを追加してください.ありがとうございます.
また、githubにはフロントエンドに関するチュートリアルやコンポーネントがあります.興味のある子供靴は見てもいいです.あなたたちのサポートが私の最大の原動力です.