日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Web Components 取代 Vue?我覺得不太行!

來源: 責編: 時間:2024-05-07 09:13:03 223觀看
導讀Web Components原因探討使用Web Components的原因,我們已經(jīng)知道像 Vue 和 React 這樣的成熟框架存在,但是有沒有深入思考過為什么選擇使用這些框架?核心理由無非是為了減少編碼工作量,通過框架減少代碼重復,盡管這同時引入

Web Components

原因

探討使用Web Components的原因,我們已經(jīng)知道像 Vue 和 React 這樣的成熟框架存在,但是有沒有深入思考過為什么選擇使用這些框架?核心理由無非是為了減少編碼工作量,通過框架減少代碼重復,盡管這同時引入了一些原生不支持的特性,從而增加了一定的復雜性。當我了解到Web Components時,我開始思考是否可以用它來取代 Vue,因為 Vue 的主要優(yōu)勢之一就是能夠?qū)崿F(xiàn)組件的封裝和復用Pgz28資訊網(wǎng)——每日最新資訊28at.com

構(gòu)成

Web Components 由三個主要部分構(gòu)成,與Vue的模板非常相似:Pgz28資訊網(wǎng)——每日最新資訊28at.com

  • 自定義元素(Custom Element): 這是一組JavaScript API,使你能夠定義自定義元素及其行為,以便根據(jù)需要在用戶界面中使用它們
  • 影子DOM(Shadow DOM): 這也是一組JavaScript API,用于將一個封閉的“影子”DOM樹附加到元素上(與主文檔DOM分開渲染),并管理其相關(guān)功能。這樣,你可以確保元素的功能是私有的,因此它們可以被腳本化和樣式化,而不會與文檔的其他部分產(chǎn)生沖突
  • HTML模板(HTML Template): template 和 slot 元素讓你能夠創(chuàng)建不會立即顯示在渲染頁面中的標記模板。然后,這些模板可以作為自定義元素結(jié)構(gòu)的基礎,被反復使用

使用

接下來說一下 Web Components 的基本使用~Pgz28資訊網(wǎng)——每日最新資訊28at.com

自定義組件

創(chuàng)建一個基礎的自定義組件包含以下步驟:Pgz28資訊網(wǎng)——每日最新資訊28at.com

  • 1、繼承: 自定義元素需要通過繼承HTMLElement類(或其子類)來創(chuàng)建
  • 2、創(chuàng)建模板: 使用document.createElement('template')來創(chuàng)建一個新的模板元素
  • 3、獲取影子DOM: 通過元素的attachShadow方法獲取影子DOM,為元素提供封裝的DOM結(jié)構(gòu)
  • 4、添加內(nèi)容: 將模板內(nèi)容通過appendChild方法添加到影子DOM中。使用cloneNode方法克隆節(jié)點,避免對原始模板的污染。
  • 5、定義組件: 使用customElements.define('component-tag-name', ComponentClassName)來定義組件,使其可在頁面中使用

至此,一個最基礎的自定義組件創(chuàng)建完成Pgz28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Pgz28資訊網(wǎng)——每日最新資訊28at.com

拓展點:Pgz28資訊網(wǎng)——每日最新資訊28at.com

  • 在最初階段,我嘗試通過WebComponent.html的形式編寫自定義組件,這樣可以直接在標簽中寫樣式和HTML,便于編輯器提供代碼提示和格式化。然而,由于當前標簽不支持直接導入HTML文件,除非通過HTTP GET請求加載外部HTML,但這種方法似乎違背了初衷。
  • 要監(jiān)聽屬性的變化,必須通過static get observedAttributes靜態(tài)方法聲明哪些屬性是被監(jiān)聽的。之后,就可以在attributeChangedCallback回調(diào)函數(shù)中捕獲屬性變化。
  • 自定義元素也擁有簡化的生命周期鉤子,雖然只有三個,但它們的存在使得狀態(tài)管理變得簡單。
  • 支持使用插槽(slots),類似于Vue,可以通過的方式來實現(xiàn)內(nèi)容的插入。

在html中使用

  • 當引入自定義組件時,建議使用defer屬性,這樣可以確保腳本在文檔解析完成后再執(zhí)行,避免潛在的執(zhí)行順序問題。自定義組件的標簽使用方式與Vue非常相似,即使用組件在define時指定的名稱,并通過slot="slot-name"來指定插槽的名稱。在Vue項目中,可以通過簡單地導入組件的JavaScript文件(例如import "./components/WebComponent/WebComponent.js";)來使用這些自定義元素。

圖片圖片Pgz28資訊網(wǎng)——每日最新資訊28at.com

在實際使用中,可能會遇到一些挑戰(zhàn):Pgz28資訊網(wǎng)——每日最新資訊28at.com

  • 通常情況下,自定義組件內(nèi)部和父組件都會包含一些業(yè)務邏輯,這可能需要父組件向子組件暴露某些方法。例如,在自定義組件被加入到頁面(即在connectedCallback被調(diào)用)之后,可能需要通知父組件,這時可以通過調(diào)用在父組件中定義的this.ready()方法。為了避免connectedCallback在ready方法定義之前執(zhí)行而導致錯誤,推薦在引入自定義組件的腳本標簽中加上defer
  • 若需調(diào)用自定義組件的方法,必須確保自定義組件已經(jīng)完全創(chuàng)建好。因此,在示例中通過定義一個ready方法,并在connectedCallback調(diào)用之后執(zhí)行它,或者等待頁面的onload事件觸發(fā)后執(zhí)行。這意味著定義和調(diào)用之間的執(zhí)行順序需要特別注意,以避免由于執(zhí)行順序引起的問
  • 監(jiān)聽屬性變化時,應使用setAttribute方法來修改屬性值,因為直接修改屬性(如extendP.attributes['size']=200)不會觸發(fā)屬性監(jiān)聽回調(diào)
  • 關(guān)于插槽(slot)傳值的問題,目前似乎沒有直接的方法來實現(xiàn)

簡而言之,雖然自定義組件的使用看似簡單直接,但在實際開發(fā)中還是需要注意腳本加載順序、組件通信和屬性監(jiān)聽等細節(jié)問題,以確保組件能夠正確無誤地運行Pgz28資訊網(wǎng)——每日最新資訊28at.com

參考文章:https://juejin.cn/post/7309693162368565299Pgz28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-87013-0.htmlWeb Components 取代 Vue?我覺得不太行!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: SpringBatch高階應用:大數(shù)據(jù)批處理框架實戰(zhàn)指南

下一篇: 用Golang做一個永久阻塞,有哪些小技巧 ?

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久精品人人做人人爽| 亚洲国产日韩在线| 欧美日韩理论| 午夜激情综合网| 亚洲欧美一区二区激情| 久久国产精品久久w女人spa| 裸体丰满少妇做受久久99精品| 欧美成人国产一区二区| 欧美日韩在线视频一区二区| 国产日韩欧美精品在线| 一区二区在线免费观看| 亚洲精品欧美日韩专区| 午夜国产精品影院在线观看| 久久久噜噜噜久久中文字免| 欧美日韩国产一区| 国产欧美午夜| 久久美女艺术照精彩视频福利播放| 性欧美长视频| 在线精品亚洲一区二区| 国产精品爱久久久久久久| 亚洲欧洲一区二区天堂久久| 久久国产色av| 国产精品爽黄69| 国产亚洲精品久久久久动| 国产精品成人一区二区| 亚洲一区二区三区久久| 欧美精选一区| 亚洲五月六月| 欧美日韩综合久久| 亚洲国产成人精品视频| 国产精品久久久久9999吃药| 午夜精品久久久| 国语对白精品一区二区| 亚洲在线观看视频网站| 伊人久久大香线蕉av超碰演员| 国产乱码精品一区二区三区不卡 | 亚洲激情视频网| 欧美日韩精品国产| 亚洲欧美另类中文字幕| 在线观看日韩av电影| 欧美视频免费在线观看| 亚洲男人的天堂在线aⅴ视频| 精品电影一区| 亚洲福利国产| 国产精品中文字幕欧美| 国产精品人成在线观看免费| 久久精品国产精品亚洲综合| 欧美性猛片xxxx免费看久爱| 你懂的国产精品| 国产婷婷色一区二区三区在线 | 亚洲国产91精品在线观看| 黄色成人av网站| 一区二区三区在线免费观看| 国产精品人成在线观看免费| 久久亚洲国产精品一区二区| 国产精品久久一区二区三区| 亚洲日本免费| 久久人91精品久久久久久不卡| 国产精品美女主播| 亚洲女同在线| 久久精品国产久精国产一老狼 | 激情91久久| 亚洲欧美日本视频在线观看| 欧美精品激情在线观看| 亚洲国产欧美一区二区三区久久 | 农村妇女精品| 在线欧美一区| 久久综合给合久久狠狠色 | 国产一区91精品张津瑜| 午夜精品一区二区三区四区| 欧美四级伦理在线| 99精品欧美| 欧美日韩国产色综合一二三四 | 亚洲一区在线视频| 精品成人一区二区三区四区| 亚洲高清成人| 久久久999成人| 国产欧美日韩伦理| 香蕉免费一区二区三区在线观看 | 亚洲区一区二| 欧美va亚洲va日韩∨a综合色| 在线观看成人av电影| 久久久最新网址| 在线观看国产精品网站| 麻豆精品视频在线观看视频| 在线免费不卡视频| 欧美不卡一区| 亚洲精品激情| 欧美日韩精品福利| 中文国产一区| 国产精品你懂的在线| 亚洲欧美视频在线| 国产午夜久久| 久久全国免费视频| 亚洲国产日韩欧美在线图片 | 欧美精品免费看| 亚洲精品国产精品久久清纯直播 | 在线观看福利一区| 欧美大片国产精品| 99re66热这里只有精品4| 国产精品久久国产愉拍 | 欧美mv日韩mv亚洲| 日韩亚洲欧美高清| 国产精品久久久久久久午夜 | 中国日韩欧美久久久久久久久| 欧美亚州一区二区三区| 亚洲欧美视频在线观看视频| 国产亚洲精品一区二区| 久久亚洲高清| 亚洲三级免费观看| 国产精品高潮粉嫩av| 久久av红桃一区二区小说| 在线不卡免费欧美| 欧美日本亚洲韩国国产| 亚洲欧美伊人| 在线看国产一区| 欧美日韩亚洲一区| 欧美在线观看一区| 亚洲欧洲日本一区二区三区| 国产精品白丝jk黑袜喷水| 久久国产夜色精品鲁鲁99| 亚洲国产福利在线| 国产精品久久77777| 久久精品中文| 99综合精品| 国产在线国偷精品产拍免费yy| 欧美激情精品久久久久久黑人 | 久久午夜av| 在线亚洲一区观看| 国外视频精品毛片| 欧美日韩免费一区二区三区视频| 欧美亚洲免费电影| 亚洲三级国产| 国产日韩欧美在线视频观看| 欧美电影美腿模特1979在线看| 亚洲在线视频免费观看| 在线日韩欧美视频| 国产精品国产自产拍高清av王其| 久久免费视频这里只有精品| 一区二区三区四区五区视频| 狠狠色香婷婷久久亚洲精品| 欧美色大人视频| 久久综合中文| 午夜视黄欧洲亚洲| 亚洲精品在线一区二区| 国产亚洲高清视频| 欧美视频在线一区二区三区| 久久这里只精品最新地址| 亚洲一区精品视频| 亚洲欧洲在线视频| 狠狠色丁香婷婷综合| 欧美亚洲第一页| 欧美成人一区二区| 久久精品国产视频| 亚洲一区二区精品在线| 亚洲黄网站在线观看| 国产一区二区精品在线观看| 国产精品户外野外| 欧美精品一区二区三区视频| 久久久999| 欧美一区二区三区免费看| 99精品视频免费观看视频| 在线免费观看一区二区三区| 国产欧美一区二区精品秋霞影院| 欧美日韩免费观看一区| 另类人畜视频在线| 久久激情婷婷| 午夜精品久久久久影视| 在线午夜精品| 亚洲免费成人av| 亚洲国产精品一区二区www在线| 国产亚洲毛片在线| 国产精品视频大全| 欧美体内谢she精2性欧美| 欧美韩日一区| 蜜桃av综合| 久久久伊人欧美| 欧美在线观看视频| 香蕉国产精品偷在线观看不卡 | 午夜亚洲伦理| 亚洲欧美日本另类| 亚洲欧美日韩一区二区三区在线| 这里只有精品视频| 一本色道久久| 99精品视频免费观看| 亚洲欧洲日韩在线| 亚洲高清精品中出| 亚洲国产二区| 亚洲经典三级| 91久久精品www人人做人人爽| 极品日韩av| 伊人色综合久久天天| 极品尤物一区二区三区| 激情校园亚洲| 一区二区三区在线免费观看| 一区二区三区在线视频观看| 激情小说另类小说亚洲欧美 | 午夜亚洲精品| 欧美一区国产二区| 久久精品首页| 久久久久久久久久久久久久一区 | 国产日韩精品一区二区三区| 国产伦精品一区二区三区照片91 | 欧美日韩国产一区|