Vue.js 如何将选项传递到自定义vue组件?

Vue.js 如何将选项传递到自定义vue组件?,vue.js,vuejs2,Vue.js,Vuejs2,我制作了一个自定义Vue组件,并通过npm发布了它。我的组件按照我在主项目中的预期工作,但在当前使用情况下,用户需要发送太多的道具才能高效地使用我的组件,并且不会产生重复的代码 我将组件安装为 //组件文件夹中的index.js 从“/MyComponent.vue”导入MyComponent; 导出默认值{ 安装(Vue,选项){ Vue.component(“我的组件”,MyComponent); } }; 并在我的项目中注册为 //项目文件夹中的main.js 从“Vue”导入Vue 从

我制作了一个自定义Vue组件,并通过npm发布了它。我的组件按照我在主项目中的预期工作,但在当前使用情况下,用户需要发送太多的道具才能高效地使用我的组件,并且不会产生重复的代码

我将组件安装为

//组件文件夹中的index.js
从“/MyComponent.vue”导入MyComponent;
导出默认值{
安装(Vue,选项){
Vue.component(“我的组件”,MyComponent);
}
};
并在我的项目中注册为

//项目文件夹中的main.js
从“Vue”导入Vue
从“我的组件”导入MyComponent
Vue.use(MyComponent)
在my
.vue
文件中使用自定义组件,如下所示:



由于该道具的使用看起来很不整洁,并导致我自己有太多的代码重复,所以我想在选项中注册该道具并通过我的组件。但我不知道该怎么做

您可以使用安装阶段覆盖默认设置,如下所示:

从“/components/MyComponent”导入MyComponent;
导出默认值{
安装(Vue,选项={}){
让props={…MyComponent.props};
Object.keys(options).forEach(k=>{
道具[k]={default:options[k]};
});
组件('my-component',{…MyComponent,props});
},
};
此脚本的作用是允许您执行

Vue.use(MyComponent,{prop1:“abc”,props:“def”});

当您在应用程序中的某个位置使用该组件时,道具仍然是交互式的,可以被覆盖,但您可以保留为默认设置。它通过将现有的道具定义替换为仅定义为传递值的
default
对象来实现。这有点像黑客,所以我不确定它在某些边缘情况下能保持多久。

您可以使用安装阶段覆盖默认设置,如下所示:

从“/components/MyComponent”导入MyComponent;
导出默认值{
安装(Vue,选项={}){
让props={…MyComponent.props};
Object.keys(options).forEach(k=>{
道具[k]={default:options[k]};
});
组件('my-component',{…MyComponent,props});
},
};
此脚本的作用是允许您执行

Vue.use(MyComponent,{prop1:“abc”,props:“def”});

当您在应用程序中的某个位置使用该组件时,道具仍然是交互式的,可以被覆盖,但您可以保留为默认设置。它通过将现有的道具定义替换为仅定义为传递值的
default
对象来实现。这是一个小技巧,所以我不确定它在某些边缘情况下能保持多好。

v-bind=“{prop1,prop2,prop3}
组件
props:['prop']
请参见
v-bind=“{prop1,prop2,prop3}
以及组件
props:['prop']
请参见我想在Vue.use阶段注册我的道具。因此,在使用该组件时,我不需要将我的道具添加到中,并且我将仅使用组件的v-model来安装更好的SyntaxBe(Vue,options={}),以防止类型错误。我希望在Vue.use阶段注册我的道具。因此,在使用该组件时,我不需要将我的道具添加到中,我将只在组件中使用v-model,以便安装更好的SyntaxBe(Vue,options={}),以防止类型错误。