In meiner Komponente sein habe ich Daten, die succesptible ist ungültig seinVuejs verhindern, dass Daten null
<template>
<p> field </p>
<p> {{ maybeInvalid }} </p>
<p> other field </p>
<template>
var component = {
data: function() {
return {
maybeInvalid: xxx
}
}
Ich habe 3 Ideen, die zu beheben:
1 - Verwenden Sie v-if
v-else
in Vorlage
<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 - Machen Sie einen berechneten Wert
<template>
<p> field </p>
<p> {{ computedIsValid }} </p>
<p> other field </p>
<template>
computed: {
computedIsValid: function() {
return isValid(maybeInvalid) ? maybeInvalid : "invalid";
}
}
3 - Aufbau einer Komponente
var isValidCompoenent = {
props: ['maybeInvalid'],
template: `
<p v-if="isValid(maybeInvalid)"> {{ maybeInvalid }} </p>
<p v-else> invalid </p>`
methods: {
isValid: function (data) {
return data != null;
}
}
}
und verwenden diese Komponente
<template>
<p> field </p>
<is-valid-component :maybeInvalid="maybeInvalid" />
<p> other field </p>
<template>
...
components: {
isValidComponent: isValidComponent
}
Ich mag würde wissen, was das Beste ist (mehr idiomatische) Lösung
Dank dieses Muster zu lösen
Sie können auch Direktive) Komponente sieht wie Zucker für berechnet, Sie können Methode durch berechnete Eigenschaft ersetzen. Wenn Sie oft isvalid überprüfen müssen, ist es besser, die Komponente zu wählen, die sonst berechnet wird –