vue 基礎(chǔ)知識(shí)積累

      網(wǎng)友投稿 776 2022-05-30

      vue 基礎(chǔ)知識(shí)積累

      一、全局API

      Vue.extend():基礎(chǔ)的vue構(gòu)造器,創(chuàng)造一個(gè) vue對象子類,參數(shù)是一個(gè)包含組件選項(xiàng)的對象。(template, vue屬性, style)

      注意:

      僅有的例外是像 el 這樣根實(shí)例特有的選項(xiàng)。

      一個(gè)組件的 data 選項(xiàng)必須是一個(gè)函數(shù),因此每個(gè)實(shí)例可以維護(hù)一份被返回對象的獨(dú)立的拷貝:

      data: function () { return { count: 0 } }

      why: 因?yàn)閷ο髸r(shí)引用類型 ,函數(shù)有自己獨(dú)立的作用域。 組件可能會(huì)被多個(gè)實(shí)例同時(shí)引用,這將會(huì)導(dǎo)致多個(gè)實(shí)例共享同一個(gè)對象。

      Vue.component (): 注冊一個(gè)vue組件 全局 (Key:組件名稱, vue構(gòu)造器對象)

      // 定義組件: // 定義一個(gè)名為 button-counter 的新組件 Vue.component('button-counter', { data: function () { return { count: 0 } }, template: '' }) ---------------------------------- //使用組件:

      --------------------------- //vue根實(shí)例中掛在自定義組件
      new Vue({ el: '#components-demo' })

      全局注冊的組件可以用在其被注冊之后的任何 (通過 new Vue) 新創(chuàng)建的 Vue 根實(shí)例,也包括其組件樹中的所有子組件的模板中。

      全局注冊的行為必須在根 Vue 實(shí)例 (通過 new Vue) 創(chuàng)建之前發(fā)生

      組件注冊

      局部注冊:

      vue全局注冊是存在不完美的 ,因?yàn)槿肿?,若是組件此時(shí)注冊了 ,但是一段時(shí)間后業(yè)務(wù)調(diào)整導(dǎo)致組件不再被使用,但是構(gòu)建時(shí)依舊會(huì)存在。造成了用戶下載JavaScript代碼增加。

      解決辦法: 在一個(gè)js文件中定義組件, 然后然后在 components 選項(xiàng)中定義你想要使用的組件:

      // js文件 var ComponentA = { /* ... */ } var ComponentB = { /* ... */ } var ComponentC = { /* ... */ } //組件引用: new Vue({ el: '#app', components: { 'component-a': ComponentA, 'component-b': ComponentB } }) //ES2015 模塊 寫法聲明 components: { ComponentA }, 這種寫法相當(dāng)于 ComponentA: ComponentA 即這個(gè)變量名同時(shí)是 用在模板中的自定義元素的名稱 包含了這個(gè)組件選項(xiàng)的變量名

      編碼風(fēng)格建議: 組件集中放置 ,然后通過 Babel 和 webpack 的模塊系統(tǒng) 進(jìn)行引用

      import ComponentA from './ComponentA' import ComponentC from './ComponentC' export default { components: { ComponentA, ComponentC }, // 這個(gè)我不想寫 ,但加深一次印象吧, 模塊化,組件化確實(shí)風(fēng)格清晰,利于維護(hù) }

      vue3使用了一個(gè)小技巧 ,是的全局注冊基礎(chǔ)組件,這個(gè)感覺vue2也可以實(shí)現(xiàn) ,不難

      vue 基礎(chǔ)知識(shí)積累

      vue.emit (enventName, […args]) 觸發(fā)當(dāng)前實(shí)例上的事件,可以用作通信。附加參數(shù)都會(huì)傳給-回調(diào)。 子觸發(fā)事件 ,夫監(jiān)聽,并執(zhí)行。

      可以通過$event訪問這個(gè)args的值,但我沒試過 ,感覺這樣不方便,一般都會(huì)通過事件處理函數(shù)來解決這個(gè)問題。

      實(shí)現(xiàn)方式 通過v-on:綁定-

      // 創(chuàng)造子組件,并定義 Vue.component('welcome-button', { template: ` ` }) //父子組件

      new Vue({ el: '#emit-example-simple', methods: { sayHi: function () { alert('Hi!') } } })

      二. 組件間數(shù)據(jù)的傳遞

      Prop向子組件傳遞數(shù)據(jù)()

      Vue

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:六十五、完成Vue項(xiàng)目去哪兒網(wǎng)App首頁開發(fā)(來源:慕課網(wǎng))
      下一篇:連續(xù)兩年入選Gartner?云數(shù)據(jù)庫管理系統(tǒng)魔力象限?
      相關(guān)文章
      亚洲AV无码精品国产成人| 伊人久久亚洲综合影院| 亚洲国产综合久久天堂| 亚洲av无码无线在线观看| 亚洲午夜无码久久| 亚洲欧美日韩自偷自拍| 亚洲经典千人经典日产| 亚洲aⅴ无码专区在线观看春色 | 亚洲国产精品免费观看| 亚洲国产成人无码av在线播放| 久久精品国产亚洲77777| 久久精品亚洲中文字幕无码麻豆 | 亚洲欧洲av综合色无码| 亚洲色大成网站www| 亚洲精品无码不卡在线播放| 亚洲av成本人无码网站| 亚洲成人一区二区| av在线亚洲欧洲日产一区二区| 亚洲人成网站色在线入口| 中文字幕不卡亚洲| 国产日韩亚洲大尺度高清| 亚洲成在人天堂一区二区| 亚洲黄色免费网站| 亚洲国产成人精品久久| 亚洲夂夂婷婷色拍WW47| 国产精品亚洲精品久久精品| 激情小说亚洲色图| 亚洲午夜福利精品无码| 亚洲精品国偷自产在线| 久久久久亚洲精品无码蜜桃| 亚洲国色天香视频| 亚洲人成色99999在线观看| 国产亚洲高清在线精品不卡| 亚洲人成国产精品无码| 久久夜色精品国产亚洲| 久久久久亚洲AV无码专区网站| 亚洲国产一区在线| 久久久亚洲AV波多野结衣| 亚洲第一页在线观看| 2020天堂在线亚洲精品专区| 亚洲 欧洲 视频 伦小说|