2
在我的组件我已经是succesptible数据是无效的Vuejs防止数据为空
<template>
<p> field </p>
<p> {{ maybeInvalid }} </p>
<p> other field </p>
<template>
var component = {
data: function() {
return {
maybeInvalid: xxx
}
}
我有3个想法解决这个问题:
1 - 使用v-if
v-else
模板
<template>
<p> field </p>
<p v-if="isValid(maybeInvalid)"> {{ maybeInvalid }} </p>
<p v-else> invalid </p>
<p> other field </p>
<template>
...
methods: {
isValid: function (data) {
return data != null;
}
}
2 - 使计算值
<template>
<p> field </p>
<p> {{ computedIsValid }} </p>
<p> other field </p>
<template>
computed: {
computedIsValid: function() {
return isValid(maybeInvalid) ? maybeInvalid : "invalid";
}
}
3 - 建立一个组件
var isValidCompoenent = {
props: ['maybeInvalid'],
template: `
<p v-if="isValid(maybeInvalid)"> {{ maybeInvalid }} </p>
<p v-else> invalid </p>`
methods: {
isValid: function (data) {
return data != null;
}
}
}
,并使用该组件
<template>
<p> field </p>
<is-valid-component :maybeInvalid="maybeInvalid" />
<p> other field </p>
<template>
...
components: {
isValidComponent: isValidComponent
}
我想知道什么是最好的(更地道)的解决方案来解决这个模式
感谢
你也可以使用指令)组件看起来像计算糖,你可以用它的计算属性替换方法。如果你经常需要检查无效,最好选择组件,否则计算 –