私のプロジェクトでは、vue はグローバル変数にアクセスする必要があり、vuex を使用しています。
ここに簡単な要約があります。
(vuex的五个属性是:state、getters、mutations、actions和modules,这里先只总结用法)
1. vue でグローバル変数にアクセスする方法
1.プロジェクトの入り口から始めて、私のプロジェクトでは、index.htmlの近くにファイルがありmain.ts
、内容は次のとおりです。
import bootstrap from './bootstrap'
bootstrap('#app')
2. 上記の紹介ではbootstrap.ts
、次のようなコードがあります。
import store from './store/index'
......
export default function mount(el: string) {
return new Vue({
store,
router,
render: h => h(App),
}).$mount(el)
}
store
その中で、それを紹介してから、new Vue
その中に書くことが重要です({store})
。
3. この序文では/store/index.ts
、次のように書かれています。
import Vue from 'vue'
import Vuex, { StoreOptions } from 'vuex'
import { RootState } from './types'
Vue.use(Vuex)
const store: StoreOptions<RootState> = {
state: {
version: '1.0.0',
uploadUrl: ''
},
mutations: {
"SET_UPLOADURL": function(state,url){
state.uploadUrl = url
console.log("保存上传url",url)
}
},
getters: {
"GET_UPLOADURL": function(state){
console.log("返回上传url",state.uploadUrl)
return state.uploadUrl
}
}
}
export default new Vuex.Store<RootState>(store)
その中で重要なのはstate
, mutations
;はアクセスできる変数です. まずこの例を使ってください;変数の保存方法であり, これが同期メソッドですgetters
(非同期で使えるなら詳しくは書きません. here);変数を取得する read メソッドです。
state
uploadUrl
mutations
actions
getters
4.types.ts
上で使用されているここに挿入します。内容は次のとおりです。
export interface RootState {
version: string,
uploadUrl: string,
}
これはStoreOptions<RootState>
上記で使用され、状態内の変数のタイプを指定します。
5. vue の js 部分に変数を保存する方法:
this.$store.commit('SET_UPLOADURL','http://xxx.xxx.com/upload?filename=abc')
これにより、値state
が に格納されますuploadUrl
。
6. vue の js 部分で変数を読み取る方法:
console.log(this.$store.getters.GET_UPLOADURL)
state
このようにして、その中の値を読み取ることができuploadUrl
、値は保存されるだけですhttp://xxx.xxx.com/upload?filename=abc
2. 備考
1.new Vue({})
グローバルに宣言されているため、実行メソッドがstore
使用可能this.$store
2.フレームワーク内の固定メソッドである必要がありcommit
ますgetters
3. 閲覧SET_UPLOADURL
・撤回時の明細書と内部GET_UPLOADURL
の対応mutations
getters