【问题标题】:How to check if prop is present in Vue?如何检查 Vue 中是否存在 prop?
【发布时间】:2018-11-25 07:11:43
【问题描述】:

我有一个这样的组件:

<vue-component show></vue-component>

如您所见,有一个 show 属性。我不能使用typeof,因为它总是undefined,因为没有任何价值。请帮忙!

【问题讨论】:

    标签: javascript vue.js vue-component


    【解决方案1】:

    作为 Bhojendra Rauniyar 答案的附录,您可能应该将默认设置为 false:

    Vue.component('my-component', {
      //props:['show'] <--- Wont work
      props: {
          'show': { 
              type: Boolean, 
              default: false
           } 
      },  
      template: `<div>show is: {{show}}</div>`
    })
    
    new Vue({
      el: '#app',
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
    <div id="app">
      <my-component show></my-component>
    </div>

    【讨论】:

      【解决方案2】:

      好吧,你将在模板中使用如下:

      <div v-if="show">
      ...
      </div>
      

      如果你需要检查脚本内部,你可能知道:

      if(this.show) {
      

      还有,

      typeof show // will always be undefined
      

      因为 props 也可以使用 this 访问:

      typeof this.show // will return Boolean as you're just passing show
      // which is simply like `:show="true"`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-18
        • 2017-12-27
        • 1970-01-01
        • 1970-01-01
        • 2020-06-05
        • 2011-05-06
        • 2014-05-14
        • 2011-08-23
        相关资源
        最近更新 更多