av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

很多人不知道Vue中的組件就是一個函數(shù)!

 在所有組件之下,組件只是返回一些HTML的函數(shù)。

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

看一下這個組件:

 
 
 
 
  1.  

下面是用 Javascript 實(shí)現(xiàn),它做了同樣的事情:

 
 
 
 
  1. function component(title) { 
  2.   let html = ''; 
  3.  
  4.   html += '
    '; 
  5.   html += `

    ${title}

    `; 
  6.   html += '

    Some words that describe this thing

    '; 
  7.   html += ''; 
  8.   html += '
'; 
  •  
  •   return html; 
  • 該代碼與Vue組件構(gòu)造HTML 方式基本相同。當(dāng)然,這里沒有響應(yīng)性,事件處理或其它一系列功能,但是獲取輸出的 HTML 是同一回事。

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

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

    依靠編程基礎(chǔ)

    一旦真正意識到 Vue 組件實(shí)際上只是函數(shù),那么我們就可以發(fā)現(xiàn)一些隱藏的知識點(diǎn)。

    我們可以從學(xué)習(xí) Javascript 或任何其他編程語言中學(xué)到的知識應(yīng)用到 Vue 中。

    例如,假設(shè)我們想學(xué)習(xí)如何編寫優(yōu)雅和簡潔的Vue組件。我們可以將所學(xué)到的編寫干凈 Javascript 的知識應(yīng)用到Vue組件中。比如保持函數(shù)簡小,使用描述性名稱,等等

    即使是學(xué)習(xí)類似的框架,如React或Angular,也是非常有用的練習(xí)。

    現(xiàn)在讓我們看一個更詳細(xì)的例子。

    以新的視角進(jìn)行重構(gòu)

    假設(shè)有以下的一個組件:

     
     
     
     
    1.  

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

     
     
     
     
    1.  

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

     
     
     
     
    1.  

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

    下面是一個使用循環(huán)的例子

     
     
     
     
    1. function goingLoopy() { 
    2.   const elements = document.querySelectorAll('.item'); 
    3.  
    4.   for (const el of elements) { 
    5.     const { width } = el.getBoundingClientRect(); 
    6.     if (width > 500) { 
    7.       el.classList.add('large'); 
    8.     } 
    9.   } 

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

    這已經(jīng)很好了,但是如果還要優(yōu)化代碼,應(yīng)該怎么做呢

    我的猜測是,你可能會把for..of的內(nèi)容帶入一個新函數(shù)中:

     
     
     
     
    1. function updateElement(el) { 
    2.   const { width } = el.getBoundingClientRect(); 
    3.   if (width > 500) { 
    4.     el.classList.add('large'); 
    5.   } 
    6.  
    7. function goingLoopy() { 
    8.   const elements = document.querySelectorAll('.item'); 
    9.  
    10.   for (const el of elements) { 
    11.     updateElement(el); 
    12.   } 

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

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

    作者:Michael Thiessen 譯者:前端小智 來源:medium

    來源:https://medium.com/js-dojo/vue-js-functional-components-what-why-and-when-439cfaa08713

    本文轉(zhuǎn)載自微信公眾號「****」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系****公眾號。


    文章名稱:很多人不知道Vue中的組件就是一個函數(shù)!
    分享鏈接:http://uogjgqi.cn/article/cdjpddj.html
    掃二維碼與項(xiàng)目經(jīng)理溝通

    我們在微信上24小時期待你的聲音

    解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流