1. 程式人生 > >Vue 全域性例項,我想單獨在js裡面用(許可權路由的時候或者攔截器時候),填坑之路,

Vue 全域性例項,我想單獨在js裡面用(許可權路由的時候或者攔截器時候),填坑之路,

首先我有一個校驗需要用到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') ] }

如果你有更好的辦法請告訴我。我需要你的幫助

如果你覺得好就點個贊。