91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么理解Vue中的組件

發布時間:2021-11-03 15:19:52 來源:億速云 閱讀:124 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么理解Vue中的組件”,在日常操作中,相信很多人在怎么理解Vue中的組件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么理解Vue中的組件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

這是一個強大的簡化,如果你曾研究過Vue代碼庫的復雜性,那么你就會知道這實際上不是事實。但是從根本上講,這就是Vue為我們所做的事情。

看一下這個組件:

<template>   <div>     <h2>{{ title }}</h2>     <p>Some words that describe this thing</p>     <button>Clickity click!</button>   </div> </template>

下面是用 Javascript 實現,它做了同樣的事情:

function component(title) {   let html = '';    html += '<div>';   html += `<h2>${title}</h2>`;   html += '<p>Some words that describe this thing</p>';   html += '<button>Clickity click!</button>';   html += '</div>';    return html; }

該代碼與Vue組件構造HTML 方式基本相同。當然,這里沒有響應性,事件處理或其它一系列功能,但是獲取輸出的 HTML 是同一回事。

如果你從未想過以這種方式考慮組件,那很正常,很多人也沒有。

當你開始學習Vue時,會看到新的語法和所有這些神奇的東西,它們看起來與我們以前接觸過的任何東西都不太一樣。

依靠編程基礎

一旦真正意識到 Vue 組件實際上只是函數,那么我們就可以發現一些隱藏的知識點。

我們可以從學習 Javascript 或任何其他編程語言中學到的知識應用到 Vue 中。

例如,假設我們想學習如何編寫優雅和簡潔的Vue組件。我們可以將所學到的編寫干凈 Javascript  的知識應用到Vue組件中。比如保持函數簡小,使用描述性名稱,等等

即使是學習類似的框架,如React或Angular,也是非常有用的練習。

現在讓我們看一個更詳細的例子。

以新的視角進行重構

假設有以下的一個組件:

<template>   <div>     <h2>{{ title }}</h3>     <div class="navigation">       <!-- ... -->     </div>      <div v-for="item in list">       <h3 class="item-title">         {{ item.title }}       </h3>       <p class="item-description">         {{ item.description }}       </p>     </div>      <footer>       <!-- ... -->     </footer>   </div> </template>

為簡化,我們將v-for內部的內容變成了一個新的組件,如下所示:

<template>   <div>     <h3 class="item-title">       {{ item.title }}     </h3>     <p class="item-description">       {{ item.description }}     </p>   </div> </template>

完成此操作后,我們將其替換為父組件,這使我們擺脫了多余的嵌套:

<template>   <div>     <h2>{{ title }}</h3>     <div class="navigation">       <!-- ... -->     </div>      <ListItem       v-for="item in list"       :item="item"     />      <footer>       <!-- ... -->     </footer>   </div> </template>

如果我們在寫Javascript,我們會用幾乎完全相同的方式來做這些。

下面是一個使用循環的例子

function goingLoopy() {   const elements = document.querySelectorAll('.item');    for (const el of elements) {     const { width } = el.getBoundingClientRect();     if (width > 500) {       el.classList.add('large');     }   } }

在這里,我們使用 DOM 方法獲取了類為 item 的所有元素,如果它們大于500px,則將large類添加其中。

這已經很好了,但是如果還要優化代碼,應該怎么做呢

我的猜測是,你可能會把for..of的內容帶入一個新函數中:

function updateElement(el) {   const { width } = el.getBoundingClientRect();   if (width > 500) {     el.classList.add('large');   } }  function goingLoopy() {   const elements = document.querySelectorAll('.item');    for (const el of elements) {     updateElement(el);   } }

如果你將組件看作是一個函數,那么對于我們的優化會有更深入的了解。

他們一直在你腦海中,你只是沒有意識到。

到此,關于“怎么理解Vue中的組件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

家居| 杭锦后旗| 达州市| 两当县| 睢宁县| 花垣县| 松潘县| 庄河市| 苏尼特左旗| 建平县| 鄂托克旗| 定兴县| 青龙| 蒙自县| 郧西县| 虎林市| 青海省| 长兴县| 新巴尔虎左旗| 铜陵市| 临猗县| 婺源县| 博湖县| 德清县| 榕江县| 霸州市| 鞍山市| 金华市| 乐昌市| 梁山县| 隆回县| 江永县| 石阡县| 大英县| 临颍县| 泉州市| 鄂托克旗| 财经| 梧州市| 海宁市| 和政县|