簡単な3ステップvuex入門
2931 ワード
前言
これまでのいくつかのプロジェクトでは、コンポーネント間の通信が必要な場所に多少遭遇したが、様々な理由でevent busのコストがvuexよりも高いため、技術的な選択型でvuexを選んだが、なぜかチームの新人がvuexを聞くと、萎縮し始めた.vuexは難しいからだ.本当に難しいですか?今日は簡単な3つのステップでvuexがどれだけ簡単かを証明します.
純粋に個人の経験で、どうしても正しくないところがあって、もし発見があれば、指摘を歓迎します!
初心者向けの入門チュートリアル、入門チュートリアル、入門チュートリアルです
ステップ0
新しいvueプロジェクトを作成し、vuexをインストールします.ここではあまり紹介しません.ポイントを入れることができます.デフォルトでは、これらのスキルを備えています.
最初のステップ
新規作成jsファイル、名前の位置は任意で、慣例に従って、/src/storeディレクトリの下で(なければ自分で新しいのを作ることをお勧めします)
ファイルの場所/src/store/index.js
コードは少し多いように見えますが、よく知っているように見えますか?普通のvueと大差ないですか.
このステップは実際にstoreを新規作成することですが、私たちはまだプロジェクトで使用していません.
ステップ2
エントリファイルに上記のファイルを導入し、new Vue()に渡されるパラメータを少し変更します.新しい行の後ろにコメントがあります.
ファイルの場所/src/main.js(vue-cli自動生成の入口は、足場を使わなくても説明する必要はありません)
Tip: import store from './store'の後ろのアドレスは、indexですので、上に新しいファイルを作成した場所です(/src/store/index.js).jsは省略することができる.
ステップ3
以上の2つのステップは、実はvuexの基本的な構成が完了しており、次は使用します.
ファイルの場所/src/main.js(同じvue-cliで生成されたapp.vueですが、ここではプレゼンテーションを容易にするために余分なコードを削除します)
ここは普通の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の進歩知識点の強化
ここで紹介するソースを共有します.https://github.com/noahlam/articles
これまでのいくつかのプロジェクトでは、コンポーネント間の通信が必要な場所に多少遭遇したが、様々な理由で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の進歩知識点の強化
ここで紹介するソースを共有します.https://github.com/noahlam/articles