最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vuejs 實(shí)現(xiàn)簡(jiǎn)易 todoList 功能 與 組件實(shí)例代碼

 更新時(shí)間:2018年09月10日 09:12:10   作者:苦作舟  
本文通過(guò)實(shí)例代碼給大家介紹了Vuejs 實(shí)現(xiàn)簡(jiǎn)易 todoList 功能 與 組件,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

todoList

結(jié)合之前 Vuejs 基礎(chǔ)與語(yǔ)法
•使用 v-model 雙向綁定 input 輸入內(nèi)容與數(shù)據(jù) data
•使用 @click 和 methods 關(guān)聯(lián)事件
•使用 v-for 進(jìn)行數(shù)據(jù)循環(huán)展示

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>TodoList</title>
 <script src="./vue.js"></script>
</head>
<body>
 <div id="root">
  <div>
   <input v-model="inputValue"/>
   <button @click="handleSubmit">提交</button>
  </div>
  <ul>
   <li v-for="(item,index) of list" :key="index">
    {{item}}
   </li>
  </ul>
 </div>
 <script>
  new Vue({
   el: "#root",
   data: {
    inputValue: '',
    list: []
   },
   methods: {
    handleSubmit: function(){
     this.list.push(this.inputValue)
     this.inputValue = ''
    }
   }
  })
 </script>
</body>
</html>

JSbin 預(yù)覽

todoList 組件拆分

Vuejs 組件相關(guān) 詳細(xì)參考組件基礎(chǔ)

全局組件

注冊(cè)全局組件,并在 HTML 中通過(guò)模板調(diào)用組件

//注冊(cè)全局組件
  Vue.component('todo-item',{
   template: '<li>item</li>'
  })
  <ul>
   <!-- <li v-for="(item,index) of list" :key="index">
    {{item}}
   </li> -->
   <todo-item></todo-item>   <!-- 通過(guò)模板使用組件 -->
  </ul>

JSbin 預(yù)覽

局部組件

在注冊(cè)了局部組件之后,直接通過(guò)模板調(diào)用是不可以的,必須要在最外層的 Vue 的實(shí)例中添加 components: { }進(jìn)行組件聲明。 

//注冊(cè)局部組件
  var TodoItem = {
   template: '<li>item</li>'
  }
  new Vue({
   el: "#root",
   components: {  //局部組件需要聲明的 components
    'todo-item': TodoItem
   },
   data: {
    inputValue: '',
    list: []
   },
   methods: {
    handleSubmit: function(){
     this.list.push(this.inputValue)
     this.inputValue = ''
    }
   }
  })

JSbin 預(yù)覽

即通過(guò)局部注冊(cè)的組件,需要在其他的 Vue 實(shí)例中使用該局部組件。必須使用 components 對(duì)該局部組件進(jìn)行注冊(cè)。
上面的實(shí)例中,要在 Vue 實(shí)例中使用 TodoItem 這個(gè)局部組件,就通過(guò) todo-item 這個(gè)標(biāo)簽來(lái)使用。當(dāng)在實(shí)例中 注冊(cè)好了以后,才可以在模板里面使用這個(gè)標(biāo)簽。這樣就算正確的使用了局部組件。

外部傳遞參數(shù)

給 todo-item 標(biāo)簽添加 :content 屬性,值為循環(huán)的每一項(xiàng)的內(nèi)容 "item",

這樣就可以吧 content 傳遞給 todo-item 這個(gè)組件

<todo-item v-for="(item,index) of list" :key="index" :content="item"></todo-item>

但是直接將組件改成是不行的

  Vue.component('todo-item',{
   template: '<li>{{content}}</li>'
  })

需要讓組件接收屬性,所以要在todo-item組件里面定義props屬性,其值為一個(gè)數(shù)組 'content' 。
其含義是,該組件接收從外部傳遞的進(jìn)來(lái)的名字叫做 content 的屬性

  Vue.component('todo-item',{
   props: ['content'],
   template: '<li>{{content}}</li>'
  })

JSbin 預(yù)覽

組件與實(shí)例的關(guān)系

Vue 之中,每一個(gè)組件其實(shí)也是一個(gè) Vue 的實(shí)例。因此在 Vue 項(xiàng)目中,是一個(gè)個(gè)實(shí)例構(gòu)建而成的。
因此組件之中,也可以綁定 @click 事件,添加 methods 屬性。

 Vue.component('todo-item',{
   props: ['content'],
   template: '<li @click="handleClick">{{content}}</li>',
   methods: {
    handleClick: function(){
     alert('clicked')
    }
   }
  })

JSbin 預(yù)覽

同樣的實(shí)例也可以被稱作一個(gè)組件,那么我們這個(gè)根實(shí)例當(dāng)中的 template 模板是什么呢 ?
如果一個(gè) Vue 實(shí)例沒(méi)有模板,會(huì)到掛載點(diǎn)去找。如下實(shí)例,根實(shí)例會(huì)找到 #root 下面掛載點(diǎn)的所有內(nèi)容作為模板。

new Vue({
   el: "#root",
   data: {
    inputValue: '',
    list: []
   },
   methods: {
    handleSubmit: function(){
     this.list.push(this.inputValue)
     this.inputValue = ''
    }
   }
  })

為 todoList 添加刪除功能

通過(guò) 發(fā)布 / 訂閱,當(dāng)子組件點(diǎn)擊時(shí),通知父組件把數(shù)據(jù)刪除掉。在子組件中,發(fā)布自定義一個(gè) 'delete' 事件。調(diào)用 this.$emit 方法,并傳遞 index 的值。

子組件向外部進(jìn)行發(fā)布

  //子組件
  Vue.component('todo-item',{
   props: ['content','index'],
   template: '<li @click="handleClick">{{content}}</li>',
   methods: {
    handleClick: function(){
     //發(fā)布
     this.$emit('delete', this.index)
    }
   }
  })

父組件在模板里創(chuàng)建子組件的時(shí)候,監(jiān)聽子組件向外觸發(fā)的 delete 事件,如果監(jiān)聽到 delete 事件,執(zhí)行 handleDelete 函數(shù)。

   <todo-item v-for="(item,index) of list"
         :key="index"
         :content="item"
         :index="index"
         @delete="handleDelete"> <!-- 監(jiān)聽delete事件 -->
   </todo-item>   <!-- 通過(guò)模板使用組件 -->

然后在父組件的 methods 中,寫好 handleDelete 方法。

  //最外層實(shí)例,父組件
  new Vue({
   el: "#root",
   data: {
    inputValue: '',
    list: []
   },
   methods: {
    handleSubmit: function(){
     this.list.push(this.inputValue)
     this.inputValue = ''
    },
    handleDelete: function(index){
     this.list.splice(index,1) //使用splice方法刪除list
    }
   }
  })

總結(jié)

以上所述是小編給大家介紹的Vuejs 實(shí)現(xiàn)簡(jiǎn)易 todoList 功能 與 組件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vue-cli中安裝方法(圖文詳細(xì)步驟)

    vue-cli中安裝方法(圖文詳細(xì)步驟)

    這篇文章主要介紹了vue-cli中安裝方法(圖文詳細(xì)步驟),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • vue使用Office?Web實(shí)現(xiàn)線上文件預(yù)覽

    vue使用Office?Web實(shí)現(xiàn)線上文件預(yù)覽

    這篇文章主要為大家介紹了vue使用微軟的開發(fā)接口Office?Web,實(shí)現(xiàn)線上文件預(yù)覽,預(yù)覽word,excel,pptx,pdf文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue路徑上如何設(shè)置指定的前綴

    vue路徑上如何設(shè)置指定的前綴

    這篇文章主要介紹了vue路徑上如何設(shè)置指定的前綴,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue+element實(shí)現(xiàn)打印頁(yè)面功能

    vue+element實(shí)現(xiàn)打印頁(yè)面功能

    這篇文章主要介紹了vue+element實(shí)現(xiàn)打印頁(yè)面功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • 前端單獨(dú)實(shí)現(xiàn)vue動(dòng)態(tài)路由的示例代碼

    前端單獨(dú)實(shí)現(xiàn)vue動(dòng)態(tài)路由的示例代碼

    Vue動(dòng)態(tài)路由權(quán)限涉及根據(jù)用戶權(quán)限動(dòng)態(tài)生成路由配置,實(shí)現(xiàn)此功能可增強(qiáng)應(yīng)用安全性、靈活性,提升用戶體驗(yàn)和開發(fā)效率,本文就來(lái)介紹一下前端單獨(dú)實(shí)現(xiàn)vue動(dòng)態(tài)路由的示例代碼,感興趣的可以了解一下
    2024-09-09
  • 在vue中使用el-tab-pane v-show/v-if無(wú)效的解決

    在vue中使用el-tab-pane v-show/v-if無(wú)效的解決

    這篇文章主要介紹了在vue中使用el-tab-pane v-show/v-if無(wú)效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • 在Vue3項(xiàng)目中使用Vuex進(jìn)行狀態(tài)管理的詳細(xì)教程

    在Vue3項(xiàng)目中使用Vuex進(jìn)行狀態(tài)管理的詳細(xì)教程

    在?Vue?3?中使用?Vuex?進(jìn)行狀態(tài)管理是一個(gè)很好的實(shí)踐,特別是在涉及到多個(gè)組件間共享狀態(tài)的情況,下面是如何在?Vue?3?項(xiàng)目中設(shè)置和使用?Vuex?的教程,包括?state,?mutations,?actions,?getters?的概念及其用途,需要的朋友可以參考下
    2024-09-09
  • Vue實(shí)現(xiàn)手機(jī)橫屏效果的代碼示例

    Vue實(shí)現(xiàn)手機(jī)橫屏效果的代碼示例

    有時(shí)候一些頁(yè)面希望在手機(jī)上可以實(shí)現(xiàn)橫屏的效果,比如播放頁(yè)面,所以本文我們講給大家介紹Vue如何實(shí)現(xiàn)手機(jī)橫屏效果,文章通過(guò)代碼示例介紹的非常詳細(xì),感興趣的同學(xué)跟著小編一起來(lái)看看吧
    2023-08-08
  • 解決Element中el-date-picker組件不回填的情況

    解決Element中el-date-picker組件不回填的情況

    這篇文章主要介紹了解決Element中el-date-picker組件不回填的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vant如何實(shí)現(xiàn)Collapse折疊面板標(biāo)題自定義

    vant如何實(shí)現(xiàn)Collapse折疊面板標(biāo)題自定義

    這篇文章主要介紹了vant如何實(shí)現(xiàn)Collapse折疊面板標(biāo)題自定義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評(píng)論

滕州市| 红安县| 威海市| 永嘉县| 鄯善县| 威海市| 莲花县| 丹寨县| 泽库县| 巴东县| 德钦县| 兴国县| 翁牛特旗| 曲水县| 邵阳市| 昌都县| 明溪县| 定襄县| 崇文区| 平山县| 秀山| 岗巴县| 堆龙德庆县| 郧西县| 馆陶县| 社旗县| 赤城县| 招远市| 宁乡县| 晋宁县| 枝江市| 通道| 乐至县| 东宁县| 广饶县| 长葛市| 香港 | 韶山市| 东乌| 宁国市| 旬阳县|