vue3判断组件props有没有传进来
时间: 2024-07-11 20:00:56 浏览: 108
在 Vue 3 中,你可以使用 `v-model` 和条件渲染结合,或者在组件内部检查 prop 是否被定义来判断 props 是否已传递。这里有两个方法:
1. **使用 v-model 和条件渲染**:
```html
<template>
<input :value="value" v-model="inputValue" :disabled="!propExist">
</template>
<script>
export default {
data() {
return {
inputValue: '',
propExist: false,
};
},
created() {
if (this.$props.propName) { // 假设你要检查的 prop 名称为 'propName'
this.propExist = true;
}
},
};
</script>
```
在这个例子中,如果没有 `propName`,`v-model` 将不会生效,并且 input 会处于禁用状态。
2. **直接在计算属性或方法中检查**:
```html
<template>
<p>{{ hasProp ? 'Props exist' : 'Props not provided' }}</p>
</template>
<script>
export default {
computed: {
hasProp() {
return Boolean(this.$props.propName); // 如果存在则返回 true
},
},
};
</script>
```
这样,如果 `propName` 存在,`hasProp` 就会被设置为 `true`,否则显示 "Props not provided"。
阅读全文