Vue 全域性例項,我想單獨在js裡面用(許可權路由的時候或者攔截器時候),填坑之路,
阿新 • • 發佈:2018-12-12
首先我有一個校驗需要用到vue例項
export const rules = { empty: [ (value) => !!value || this.$t('valid.empty'), ], email: [ (value) => !!value || this.$t('valid.emailEmpty'), v => /[email protected]+/.test(v) || this.$t('valid.emailValid') ], username: [ v => !!v || this.$t('valid.username') ], password: [ v => !!v || this.$t('valid.password'), v => v.length >= 6 || this.$t('valid.passwordLength') ] }
但是這裡面有一個I18n的國際化,this指向錯誤
解決,在main.js裡面,把這個例項匯出
/* eslint-disable no-new */
export default new Vue({
el: '#app',
router,
i18n,
store,
components: { App },
template: '<App/>'
});
然後如下
import vue from '@/main'
export const rules = {
empty: [
(value) => !!value || vue.$t('valid.empty'),
],
email: [
(value) => !!value || vue.$t('valid.emailEmpty'),
v => / [email protected]+/.test(v) || vue.$t('valid.emailValid')
],
username: [
v => !!v || vue.$t('valid.username')
],
password: [
v => !!v || vue.$t('valid.password'),
v => v.length >= 6 || vue.$t('valid.passwordLength')
]
}
如果你有更好的辦法請告訴我。我需要你的幫助
如果你覺得好就點個贊。