溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決vue props傳值失敗輸出undefined的問題

發(fā)布時間:2021-02-05 14:33:15 來源:億速云 閱讀:2010 作者:小新 欄目:web開發(fā)

小編給大家分享一下如何解決vue props傳值失敗輸出undefined的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

如果在prop中傳的值為一個沒有使用特殊命名規(guī)則的變量如:(type),可以順利傳值:

<code class="language-html"><div id="app"> 
<test :type="type"></test> 
</div> 
Vue.component("test", { 
  props: ['type'], 
  template: '<div @click="a">我是按鈕{{type}}</div>', 
  methods: { 
   a() { 
    console.log(this.type); 
   } 
  } 
 }); 
var app = new Vue({ 
 el: '#app', 
 data: { 
 type: 'test' 
 } 
});</code>

而當這個變量為駝峰命名法如:(selectName),就會傳不過去:

<div id="app">
<test :selectName="selectName"></test>
</div>
Vue.component("test", {
  props: ['selectName'],
  template: '<div @click="a">我是按鈕{{selectName}}</div>',
  methods: {
   a() {
    console.log(this.selectName);
   }
  }
 });
var app = new Vue({
 el: '#app',
 data: {
 selectName: 'test'
 }
});

解決方法是把selectName標簽改為select-Name:

<div id="app">
<test :select-Name="selectName"></test>
</div>
Vue.component("test", {
  props: ['selectName'],
  template: '<div @click="a">我是按鈕{{selectName}}</div>',
  methods: {
   a() {
    console.log(this.selectName);
   }
  }
 });
var app = new Vue({
 el: '#app',
 data: {
 selectName: 'test'
 }
});

總結(jié):如果為駝峰命名法傳遞的話,html不區(qū)分大小寫(所有的都會轉(zhuǎn)換為小寫),所以testName 在html表現(xiàn)為 :test-name ,需要注意的是vue中使用props傳遞時最好不要用橫桿如select-name 的寫法,因為使用的時候this.select-name中的橫杠會認為它是減號,導(dǎo)致辨認不出來。在定義事件的時候最好命名都為小寫,如

this.$emit("selectchange","data");

不要寫成

this.$emit("selectChange","data");

html同樣認不出來,比較好的方式是這種

this.$emit("select-change","data");

以上是“如何解決vue props傳值失敗輸出undefined的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI