如何在vue组件

时间:2018-04-09 07:49:08

标签: javascript vue.js vue-router vue-tables-2 vee-validate

好的就是这种情况,我正在使用Vue.js开设SPA。我正在我的某个组件中使用VeeValidate,在Component1.vue中这样说,

import Vue from 'vue';
import VeeValidate from 'vee-validate';

Vue.use(VeeValidate);

export default {
    //...
}

在另一个组件中说Component2.vue我正在使用vuetable-2我这样注册,

import Vuetable from 'vuetable-2/src/components/Vuetable';

export default {
    components: {
        Vuetable
    },

   //...
}

问题是VeeValidateVuetable内部都依赖于具有相同名称的计算属性。当我在VeeValidate全球注册Vue.use(VeeValidate);时,如果我从Component1导航到Component2,则Vuetable会出错,

  

计算属性"字段"已被定义为道具

因为当我VeeValidate登陆Component1时,Component2已在全球注册。

如果我从与VeeValidate没有任何依赖关系的任何其他组件导航到VeeValidate,那么它的工作正常。

所以这是我的问题,

如何在本地Component1.vue内注册components: {}或任何其他包,以免影响其他组件?,就像在Given I remember {word} as {key} 内注册其他组件一样宾语。

1 个答案:

答案 0 :(得分:1)

Vee validate允许您通过配置更改字段和错误包名称。它位于docs here

const config = { 
     errorBagName: 'errors', // change if property conflicts 
     fieldsBagName: 'fields',
}

也许如果感兴趣,advanced configuration部分解释了如何将实例注入组件而不是全局。