Vue.js vue属性作为不带值的道具名称
我想传递一个没有任何纯值名称的属性。我希望名称根据道具动态变化 我想创建一个工具提示组件,该组件可以获得工具提示侧->左上右或底部。在v形工具提示中,没有属性边,所有边都是另一个没有值的属性。我希望它根据道具进行更改(side是一个变量-我的组件的道具)Vue.js vue属性作为不带值的道具名称,vue.js,vuetify.js,v-tooltip,Vue.js,Vuetify.js,V Tooltip,我想传递一个没有任何纯值名称的属性。我希望名称根据道具动态变化 我想创建一个工具提示组件,该组件可以获得工具提示侧->左上右或底部。在v形工具提示中,没有属性边,所有边都是另一个没有值的属性。我希望它根据道具进行更改(side是一个变量-我的组件的道具) {{text}} 导出默认值{ 道具:{ 正文:{ 类型:字符串, 要求:正确, }, 一方:{ 默认值:“top”, }, }, } 我找不到使用prop作为酒店名称的方法有两件事你需要意识到。在Vue中,使用调用组件与使用调用组件相同。
{{text}}
导出默认值{
道具:{
正文:{
类型:字符串,
要求:正确,
},
一方:{
默认值:“top”,
},
},
}
我找不到使用prop作为酒店名称的方法有两件事你需要意识到。在Vue中,使用
调用组件与使用
调用组件相同。布尔值基本上用于切换道具
您还可以使用v-bind
语法动态更改绑定到组件的道具,而不使用道具名称,如所述
这意味着,如果父组件中有一个名为side
的道具始终包含正确的一面,则可以创建一个包含所有要传递的道具的计算属性,然后在v-tooltip
上使用v-bind
传递道具:
<template>
<v-tooltip v-bind="tooltipProps">
<!-- Something -->
</v-tooltip>
</template>
<script>
const validSides = [
'top',
'top left',
'top center',
'top right',
// you get the idea
];
export default {
props: {
side: {
type: String,
default: 'top',
validator(prop) {
return validSides.contains(prop);
}
}
},
computed: {
tooltipProps() {
if (!validSides.contains(this.side)) {
return {};
}
const propsNames = this.side.split(' ');
const props = {};
for (const propName of propsNames) {
props[propName] = true;
}
return props;
}
}
}
</script>
常数有效边=[
"顶",,
“左上角”,
“上中锋”,
“右上角”,
//你明白了吗
];
导出默认值{
道具:{
一方:{
类型:字符串,
默认值:“top”,
验证器(道具){
返回validSides.contains(道具);
}
}
},
计算:{
tooltipProps(){
如果(!validSides.contains(this.side)){
返回{};
}
const propsNames=此边拆分(“”);
const props={};
for(属性名称的常量属性名称){
props[propName]=真;
}
返回道具;
}
}
}
<template>
<v-tooltip v-bind="tooltipProps">
<!-- Something -->
</v-tooltip>
</template>
<script>
const validSides = [
'top',
'top left',
'top center',
'top right',
// you get the idea
];
export default {
props: {
side: {
type: String,
default: 'top',
validator(prop) {
return validSides.contains(prop);
}
}
},
computed: {
tooltipProps() {
if (!validSides.contains(this.side)) {
return {};
}
const propsNames = this.side.split(' ');
const props = {};
for (const propName of propsNames) {
props[propName] = true;
}
return props;
}
}
}
</script>