代码之家  ›  专栏  ›  技术社区  ›  LeBlaireau

vuejs-传递属性(如果存在或为零)

  •  0
  • LeBlaireau  · 技术社区  · 6 年前

    我有一个组件

    <score :totalScore="totalScore || 0"> </scrore>
    

    分数通常设置为int,但有时分数没有任何值。在这些情况下,如何通过0来捕获此错误?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Andy    6 年前

    在你的“得分”部分,定义道具如下:

    Vue.component('score', {
    //...
    props: {
        totalScore: {
            type: Number,
            default: 0
        }
    },
    //...
    // optionally you could also define a computed property to set 0 by default
    computed: {
        totalScoreInt(){
            return parseInt(this.totalScore) || 0;
        }
    }    
    //...
    });
    

    然后像这样使用:

    <score :total-score="totalScore"> </scrore>
    

    此外,在模板中,不应在camelcase中定义props,而应使用kebab case,因为html属性不区分大小写,任何大写字符都解释为小写。

    参见文档: https://vuejs.org/v2/guide/components-props.html#Prop-Validation

    小提琴: https://jsfiddle.net/thogrtyr/