亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

vue局部組件的問題

vue局部組件的問題

LEATH 2019-03-21 18:19:10
<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script></head><body><!-- TODO: 用全局組件方式寫就沒問題,用局部組件的方式就出現這個問題了 --><div id="app">    <Apptext        v-for="item in list"        :eatList="item"        v-bind:key="item.id"    ></Apptext></div><script>      var app = new Vue({        el: '#app',         components:{            Apptext:appText        },        data: {            list:[                { id: 0, text: '蔬菜' },                { id: 1, text: '奶酪' },                { id: 2, text: '隨便其它什么人吃的東西' }            ]        },    })    var appText = {        props:['eatList'],        template: '<li>{{ eatList.text }}</li>'    }</script></body></html>最近初學vue,看官方文檔的一個例子自己用局部組件改寫的嗎,但是瀏覽器總是會報錯,而用全局組件就沒問題
查看完整描述

5 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

appText是局部注冊的沒錯,但是Apptext這個是什么,沒有說明哦


查看完整回答
反對 回復 2019-04-09
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

你這樣寫明顯是組件會報錯啊,appText這個應該是apptext


查看完整回答
反對 回復 2019-04-09
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

組件注冊的步驟是對的,錯在了appText這個變量上,當你使用這個變量的時候它的值是undefined,原因是你在使用前沒有定義。
補充一下,為子組件傳值時要使用kebab-case(短橫線)的命名模式,而不是PascalCase(駝峰命名)

查看完整回答
反對 回復 2019-04-09
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

https://img1.sycdn.imooc.com//5cac4bc000010afe07610555.jpg

注冊駝峰 引用小寫短橫線

查看完整回答
反對 回復 2019-04-09
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

Emmmm,這個是var的變量提升造成的,因為你把appText對象的賦值放在了Vue實例化的后面。


實際上是相當于這樣的:


var appText = undefined


var app = new Vue({

  el: '#app',

  components: {

    Apptext: appText // 這個時候appText是undefined的

  },

  data: {

    list:[

      { id: 0, text: '蔬菜' },

      { id: 1, text: '奶酪' },

      { id: 2, text: '隨便其它什么人吃的東西' }

    ]

  },

})


appText = {

  props:['eatList'],

  template: '<li>{{ eatList.text }}</li>'

}

改成 把appText的賦值放在new Vue之前就可以了。


PS::eatList="item" 需要寫成 :eat-list="item"


查看完整回答
反對 回復 2019-04-09
  • 5 回答
  • 0 關注
  • 676 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號