老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

vue插槽能解決的問題是什么

今天小編給大家分享一下vue插槽能解決的問題是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

十余年的赤坎網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整赤坎建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。創新互聯建站從事“赤坎網站設計”,“赤坎網站推廣”以來,每個客戶項目都認真落實執行。

vue插槽解決的問題:引入的子組件標簽中間不允許寫內容的。插槽(Slot)是vue為組件的封裝者提供的能力;允許開發者在封裝組件時,把不確定的、希望由用戶指定的部分定義為插槽;可以把插槽認為是組件封裝期間,為用戶預留的內容的占位符。

什么是插槽?

我們知道,在vue中,引入的子組件標簽中間是不允許寫內容的。為了解決這個問題,官方引入了插槽(slot)的概念。

插槽,其實就相當于占位符。它在組件中給你的HTML模板占了一個位置,讓你來傳入一些東西。插槽又分為匿名插槽具名插槽以及作用域插槽

你可能不太明白,為什么我要給子組件中傳入HTML,而不直接寫在子組件中呢?答案是這樣的。你可以想象一個場景,你有五個頁面,這五個頁面中只有一個區域的內容不一樣,你會怎么去寫這五個頁面呢?復制粘貼是一種辦法,但在vue中,插槽(slot)是更好的做法。

vue插槽能解決的問題是什么

匿名插槽

匿名插槽,我們又可以叫它單個插槽或者默認插槽。與具名插槽相對,它不需要設置name屬性。(它隱藏的name屬性為default。)

例子:

文件目錄如下,Home組件是HelloWorld的父組件。

vue插槽能解決的問題是什么

  • 在HelloWorld中寫一個匿名插槽







.hello{
  width:100%;
  height:300px;
  background:#ccc;
  margin-top:50px;
  .slotTxt{
    width:500px;
    height:200px;
    margin:30px auto;
    background:red;
  }
}

  • 在Home組件中引入子組件,并在子組件標簽中寫入內容



效果

vue插槽能解決的問題是什么

不難看出,HelloWorld標簽中的內容(紅色部分)已經顯示出來了。

具名插槽

上面已經說過,插槽有一個name屬性。與匿名插槽相對,加了name屬性的匿名插槽就是具名插槽。

  • HelloWorld組件中寫入name屬性分別為left和right的插槽







.hello{
  width:700px;
  height:300px;
  background:#ccc;
  margin: 0 auto;
  margin-top:50px;
  .slotLeft{
    width:300px;
    height:200px;
    float:left;
    background:red;
  }
  .slotRight{
    width:300px;
    height:200px;
    float:right;
    background:pink;
  }
}

  • Home組件通過在template上寫v-slot:name來使用具名插槽


      
         

name屬性為right

                      
.home{   width:900px;   margin:0 auto;   background:yellow;   padding-bottom:100px; }

注意 v-slot 只能添加在template標簽上 (只有一種例外情況)。

vue插槽能解決的問題是什么





.home{
  width:900px;
  margin:0 auto;
  background:yellow;
  padding-bottom:100px;
}

效果同上。

作用域插槽

作用域插槽其實就是可以傳遞數據的插槽。子組件中的一些數據想在父組件中使用,必須通過規定的方法來傳遞。在官方文檔中提出了一條規則,**父級模板里的所有內容都是在父級作用域中編譯的。子模板里的所有內容都是在子作用域中編譯的。**如果你在父組件直接使用子組件中的值,是會報錯的。

匿名插槽的作用域插槽

為了讓 子組件中的數據 在父級的插槽內容中可用,我們可以將 數據 作為 元素的一個特性綁定上去:

語法:v-bind:users="user"







.hello{
  width:700px;
  height:300px;
  background:#ccc;
  margin: 0 auto;
  margin-top:50px;
  .slotLeft{
    width:300px;
    height:200px;
    // float:left;
    background:red;
    margin:20px auto
  }
  .slotRight{
    width:300px;
    height:200px;
    float:right;
    background:pink;
  }
}

綁定在 元素上的特性(v-bind:users=“user”)被稱為插槽 prop。現在在父級作用域中,我們可以使用帶值的 v-slot 來定義我們提供的插槽 prop 的名字。

語法:v-slot:default="隨意取的名字"  // default可省略,簡寫為v-slot="隨意取的名字"


    
  
.home{   width:900px;   margin:0 auto;   background:yellow;   padding-bottom:100px; }

注意:
     父組件中的slotProps可以是隨意取的。
     子組件中users是隨意取的,與之對應的是父組件中的users。
     子組件中的user為數據。

效果

vue插槽能解決的問題是什么

具名插槽的作用域插槽

與匿名插槽同理,只需要把default替換成插槽的name值即可。







.hello{
  width:700px;
  height:300px;
  background:#ccc;
  margin: 0 auto;
  margin-top:50px;
  .slotLeft{
    width:300px;
    height:200px;
    // float:left;
    background:red;
    margin:20px auto
  }
  .slotRight{
    width:300px;
    height:200px;
    float:right;
    background:pink;
  }
}


    
  
.home{   width:900px;   margin:0 auto;   background:yellow;   padding-bottom:100px; }

效果

vue插槽能解決的問題是什么

注意:
     默認插槽的縮寫語法不能和具名插槽混用,因為它會導致作用域不明確。

vue插槽能解決的問題是什么

另,slot-scope寫法在2.6之后已廢棄,作用與上面相同,在此不做解釋。

上面的寫法是不是覺得有些麻煩?別著急,我們來看一看解構插槽 Prop

解構插槽 Prop

作用域插槽的內部工作原理是將你的插槽內容包括在一個傳入單個參數的函數里:

function (slotProps) {
  // 插槽內容
}

這意味著 v-slot 的值實際上可以是任何能夠作為函數定義中的參數的 JavaScript 表達式。所以在支持的環境下 (單文件組件或現代瀏覽器),你也可以使用 ES2015 解構來傳入具體的插槽 prop。

語法:v-slot="{ users }"







.hello{
  width:700px;
  height:300px;
  background:#ccc;
  margin: 0 auto;
  margin-top:50px;
  .slotLeft{
    width:300px;
    height:200px;
    // float:left;
    background:red;
    margin:20px auto
  }
  .slotRight{
    width:300px;
    height:200px;
    float:right;
    background:pink;
  }
}


    
  




.home{
  width:900px;
  margin:0 auto;
  background:yellow;
  padding-bottom:100px;
}

vue插槽能解決的問題是什么


    
  




.home{
  width:900px;
  margin:0 auto;
  background:yellow;
  padding-bottom:100px;
}

效果如上圖。


    
  




.home{
  width:900px;
  margin:0 auto;
  background:yellow;
  padding-bottom:100px;
}

使用場景

復用公共組件
代碼示例如下:




.title-box {
  padding: 16px 0;
  border-bottom: 1px solid #eff1f5;
  .title {
    font-family: MicrosoftYaHei;
    font-size: 24px;
    color: #283039;
    letter-spacing: 0;
    line-height: 24px;
    &::before {
      width: 4px;
      margin-right: 20px;
      content: "";
      background-color: #5da1ff;
      display: inline-block;
      height: 20px;
      vertical-align: middle;
    }
  }
  .right {
    float: right;
    margin-right: 20px;
  }
}

使用的ui框架為ivew。

以上就是“vue插槽能解決的問題是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創新互聯行業資訊頻道。


網站標題:vue插槽能解決的問題是什么
鏈接URL:http://www.xueling.net.cn/article/giceje.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 久久国产福利国产秒拍 | 青草网在线 | 欧美韩国一区二区 | 欧美激情国产精品 | 亚洲国产中文在线视频 | 日韩在线日韩 | 久久久情 | 亚洲美女视频一区二区 | 狠狠躁夜夜躁人人爽天天天天97 | 中文字幕国 | 少妇一边呻吟一边说使劲视频 | 欧洲精品视频一区二区 | 一级毛片免费毛片一级毛片免费 | 最近日本中文字幕免费完整 | 国产成人精品综合 | 欧美成人性a片免费观看办公室 | 天天综合网久久 | 国产一区二区三区日韩 | 青青草娱乐视频 | 偷自拍亚洲综合在线 | 无码少妇一区二区三区免费 | 国产精品爽爽va在线观98 | 狠狠躁天天躁日日躁欧美 | 三级毛片儿 | 在线无码中文字幕415 | 欧美成人高清视频 | 狠狠插日日干 | 久久久精品免费观看 | 亚洲精品不卡 | 久久成人动漫 | Chinese国产HD精品实拍 | 色网站免费在线 | 91国在线视频 | 亚洲综合色视频 | 亚洲激情四射视频中文字幕久久 | 国产精品香蕉在线观看不卡 | 日本成本人片免费网站 | 国产福利三区 | 亚洲人www| 粉嫩一区二区三区国产精品 | 96国产精品视频 |