在我們入門Vue的時候,不得不提到元件,在某些情況下,元件間需要互相傳值,例如父元件需要向子元件傳值,子元件需要向父元件傳值,那麼下面用一個實力來詳細說明。
效果:
我們想要實現這樣一個效果,在輸入框輸入文字點擊提交按鈕後,下面會出現對應的輸入內容。如果點擊某個內容,那麼這個內容就消失。
如下圖,例如我們在點擊2的時候,2就會消失
分析:
<div id="root"> <input v-model="inputValue" /> <button @click="handleSubmit">提交</button> <ul> <todo-item v-bind:content="item" v-bind:index="index" v-for="(item,index) in list" @delete="handleItemDelete" ></todo-item> </ul> </div> <script> var TodoItem={ props:['content','index'], template:"<li @click='handleItemClick'>{{content}}</li>", methods:{ handleItemClick:function(){ this.$emit('delete',this.index); } } } new Vue({ el:"#root", data:{ inputValue:'', list:[] }, components:{ 'TodoItem':TodoItem }, methods:{ handleSubmit:function(){ this.list.push(this.inputValue) this.inputValue = '' //每次提交后清空 }, handleItemDelete:function(index){ this.list.splice(index,1); } } }) </script>###透過程式碼我們不難發現,子元件向父元件傳值主要在這裡:######
this.$emit('delete',this.index);###另外需要注意到,在Vue中以$開頭的都叫做vue的實例屬性或方法,除此之前還需要注意有一些簡寫,例如和
以上是Vue組件間之間傳值實力分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!