vuex store에서 i18n 사용
10079 단어 Vue.js
엔지니어링 설치 및 vuex, vue-i18n
$ npm install -g vue-cli
$ vue init webpack lion_project
$ cd lion_project/
$ npm i -s vuex vue-i18n
vue-i18n 파일 만들기
폴더 이름과 json 파일 이름 모두 가능
이번엔 src/lang에서 만들게요.
$ mkdir src/lang
src/lang/index.jsimport Vue from 'vue'
import VueI18n from 'vue-i18n'
const messages = require('@/lang/messages.json')
Vue.use(VueI18n)
export default new VueI18n({
locale: 'ja',
messages
})
src/lang/messages.json{
"ja": {
"message": {
"lion": "A big suprise of a beer!"
}
}
}
vuex 파일 만들기
src/store 아래에서 제작
$ mkdir -p src/store/modules
src/store/index.jsimport Vue from 'vue'
import Vuex from 'vuex'
import message from '@/store/modules/message'
Vue.use(Vuex)
export default new Vuex.Store({
modules: {
message
}
})
src/store/modules/message.jsimport i18n from '@/lang'
export default {
namespaced: true,
state: {
info: ''
},
mutations: {
create (state, info) {
state.info = info
}
},
actions: {
create ({ commit }) {
// src/lang/messages.json から文言を取得
commit('create', i18n.tc('message.lion'))
}
}
}
main.js에 store와lang 추가
src/main.js
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store' // 追加
import lang from './lang' // 追加
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
store, // 追加
i18n: lang, // 追加
components: { App },
template: '<App/>'
})
HelloWorld.변경
방을 빌려 모니터를 확인하다
script 부분만 변경
발췌하다
src/components/HelloWorld.vue
<script>
export default {
name: 'HelloWorld',
computed: {
msg () {
// store/modules/message.js の info の値を取得
return this.$store.state.message.info
}
},
mounted: function () {
// store/modules/message.js の create をコールして message.lion をセット
this.$store.dispatch('message/create')
}
}
</script>
동작 확인
$ npm run dev
Hello World 대신 abg suprise of a beer!표시 여부 확인참고 문장
Reference
이 문제에 관하여(vuex store에서 i18n 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kumagaias/items/854305df8f98b740b3a7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)