摘要:超簡單的組件入門組件什么是組件在開發(fā)中,為了能讓一些頁面中的元素使用性和復(fù)用性更高我們可以將一些元素封裝成可用的一些組件或者是模板。然后通過嵌套的方式進行在頁面中嵌套使用,實現(xiàn)一種積木式編程。
超簡單的Vue.js組件入門
Vue組件 什么是vue組件?在vue開發(fā)中,為了能讓一些頁面中的元素使用性和復(fù)用性更高我們可以將一些html元素封裝成可用的一些組件或者是模板。然后通過嵌套的方式進行在頁面中嵌套使用,實現(xiàn)一種積木式編程。
如何使用vue組件?通過Vue.extend()聲明組件
Vue.extend是vue提供出來給我們實現(xiàn)組件的函數(shù)
//組裝組件(聲明組件) var MyComponent = Vue.extend({ //被封裝的html內(nèi)容 template: "This is your first vue components!", //綁定在這個組件內(nèi)的數(shù)據(jù) data: "", //監(jiān)聽這個組件的事件的方法 methods: "", //屬性,通常被用來進行數(shù)據(jù)的通信 props: "" });
注冊組件——向vue核心容器注冊這個組件
這是為了讓vue更好的管理組件(復(fù)用和刪除)
Vue.component("my-component", MyComponent); //注冊組件,傳入別名(my-component)和組件名稱(MyComponent)
初始化Vue.js的管理邊界
var vm = new Vue({ el: "#app", });
裝入組件
在頁面中嵌入
簡單四步,完成一個組件的裝載流程 :)
已經(jīng)與Vue.js組件打了個照面,該問問它點什么了Q1: 組件化除了視圖復(fù)用性更高以外的特殊作用?
讓一個組件具有自身獨立的功能——模塊化!>_
Q2: 如何在組件中進行js事件的綁定以及數(shù)據(jù)綁定?
var MyComponent = Vue.extend({ template: "", methods: { searchList: function() { console.log("Your cause an event!"); }, }, ready: function() { //在模塊準(zhǔn)備就緒時觸發(fā) console.log("Loading Complete!"); }, data: function() { //這里進行數(shù)據(jù)綁定,注意,為了方便數(shù)據(jù)的預(yù)處理,組件中的data是通過函數(shù)返回的對象 return { result: "" } } });
Q3:那都是通過一對一的綁定來實現(xiàn)數(shù)據(jù)同步的嗎?
No!有種羈絆叫做組件嵌套
通過組件之間的相互嵌套來達到組件內(nèi)部的數(shù)據(jù)同步,并且這樣的機制有利于開發(fā)功能性組件(如輪播圖,搜索框,評論區(qū)等)
父子組件通信
父組件傳值給子組件——只要data發(fā)生改變
父組件的view發(fā)生改變,子組件的view也發(fā)生改變
值傳到子組件的方式是通過props屬性
子組件通過props數(shù)據(jù)進行view同步
js腳本
var child = Vue.extend({ template: "{{ content }}
", props: ["content"] }); var Father = Vue.extend({ template: "",//將message代理到content屬性中 data: function() { return { message: "" } }, method: { sendMessage: function( event ) { //觸發(fā)事件的事件列表 this.message = event.target.value; //改變message的值 } } }); //注冊父組件 Vue.component("father-component", Father); //定義邊界 var vm = new Vue({ el: "#app" });
html
運行效果:
兄弟組件通信
兄弟組件的通信是通過一個共同的父組件或者邊界來進行橋接
創(chuàng)建兄弟組件
通過父組件“橋梁函數(shù)”的“分發(fā)”,子組件分別得到model,并同步到自己的view中去
js腳本
//孿生哥哥 var twinsCompOld = Vue.extend({ template: "I am the old brother, my age is {{ title }}
", props: ["title", "bridge"],//哥哥傳入控制年齡增長的回調(diào)函數(shù) methods: { GrowUp: function(event) { this.bridge(event.target.value);//將當(dāng)前的年齡傳入橋梁 } } }); //孿生弟弟 var twinsCompLittle = Vue.extend({ template: "I am the little brother, my age is {{ title }}
", props: ["title"]//同步年齡 }); //父親 var Father = Vue.extend({ template: "{{ say }}", components: { "oldBrother": twinsCompOld, "littleBrother": twinsCompLittle }, data: function() { var self = this; //因為執(zhí)行這個函數(shù)的是子組件,因此需要將父組件的指針保存一下 return { say: "Daddy love you!", sonAge: 0, sendMessage: function( content ) { //橋梁函數(shù) self.sonAge = content; return self.sonAge;//兒子的年齡變化了 } } } }); //注冊父組件 Vue.component("father-component", Father); //定義邊界 var vm = new Vue({ el: "#app" });
html:
運行效果:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/80859.html
摘要:在這個組件里面有一些鏈接列表,和,這些列表直接使用編寫按照傳統(tǒng)的寫法,如果我們需要往里面添加鏈接的時候,每次我們都得添加和標(biāo)簽。所以修改如下這樣我們就把數(shù)據(jù)和視圖分開了,模板里面的代碼也簡潔了很多,不再需要寫很多重復(fù)的代碼。 Vue 的官方文檔 對 Vue 介紹非常詳細(xì),但官方文檔使用在 HTML 中引入 vue 的方式進行講解,而實際項目中一般使用腳手架如 vue-cli 初始化項目...
摘要:本文是小羊根據(jù)文檔進行解讀的第一篇文章,主要內(nèi)容涵蓋的基礎(chǔ)部分的知識的,文章順序基本按照官方文檔的順序,每個知識點現(xiàn)附上代碼,然后根據(jù)代碼給予個人的一些理解,最后還放上在線編輯的代碼以供練習(xí)和測試之用在最后,我參考上的一篇技博,對進行初入的 本文是小羊根據(jù)Vue.js文檔進行解讀的第一篇文章,主要內(nèi)容涵蓋Vue.js的基礎(chǔ)部分的知識的,文章順序基本按照官方文檔的順序,每個知識點現(xiàn)附上代...
摘要:本文是小羊根據(jù)文檔進行解讀的第一篇文章,主要內(nèi)容涵蓋的基礎(chǔ)部分的知識的,文章順序基本按照官方文檔的順序,每個知識點現(xiàn)附上代碼,然后根據(jù)代碼給予個人的一些理解,最后還放上在線編輯的代碼以供練習(xí)和測試之用在最后,我參考上的一篇技博,對進行初入的 本文是小羊根據(jù)Vue.js文檔進行解讀的第一篇文章,主要內(nèi)容涵蓋Vue.js的基礎(chǔ)部分的知識的,文章順序基本按照官方文檔的順序,每個知識點現(xiàn)附上代...
摘要:文件是當(dāng)前項目的首頁文件。以后可能還會有全局注冊組件等操作。在上面使用了這是一個預(yù)定義的路徑,代表目錄。而為了使用好這個實例,不要修改的,不然裝載完內(nèi)容后,對應(yīng)的管理區(qū)域會指向不明,而導(dǎo)致渲染失敗。目錄 上節(jié)內(nèi)容回顧: npm 介紹 安裝 常用命令: 補充: ...
摘要:當(dāng)表達式的值發(fā)生變化時,響應(yīng)應(yīng)用特定的行為到。指的是否重復(fù),對重復(fù)的進行服用循環(huán)中,表示數(shù)組第個元素表示對象的樣式綁定樣式也可以根據(jù)中的變量來動態(tài)確定。 介紹 前段時間接觸到一個庫叫做Vue.js, 個人感覺很棒,所以整理了一篇博文做個介紹。Vue讀音/vju:/,和view類似。是一個數(shù)據(jù)驅(qū)動的web界面庫。Vue.js只聚焦于視圖層,可以很容易的和其他庫整合。代碼壓縮后只有24kb...
摘要:直接創(chuàng)建組件使用標(biāo)簽名組件模板,根據(jù)組件構(gòu)造器來創(chuàng)建組件。相應(yīng)的,實例也被稱為父組件。而且不允許子組件直接修改父組件中的數(shù)據(jù),強制修改會報錯。 一、組件 (一)什么是組件 組件(Component)是 Vue.js最強大的功能之一。組件可以擴展 HTML元素,封裝可重用的代碼組件是自定義元素(對象)。 (二)創(chuàng)建組件的兩種方式 官方推薦組件標(biāo)簽名是使用-連接的組合詞,例如:。 1、使用...
閱讀 3497·2023-04-25 22:44
閱讀 1046·2021-11-15 11:37
閱讀 1705·2019-08-30 15:55
閱讀 2710·2019-08-30 15:54
閱讀 1162·2019-08-30 13:45
閱讀 1490·2019-08-29 17:14
閱讀 1937·2019-08-29 13:50
閱讀 3512·2019-08-26 11:39