小程式 組件 Component

来源:https://www.cnblogs.com/nmxs/archive/2019/01/14/10267017.html
-Advertisement-
Play Games

一.組件模板和樣式 類似於頁面,自定義組件擁有自己的 wxml 和模板 wxss 樣式。 1.組件模板 組件的寫法和頁面的寫法相同,組件模板與組件數據結合後生成的數節點, 將被插入到組件的引用位置。在組件模板中提供一個<slot> 節點,用於承載組件 引用時候提供的子節點。 例如: <view cl ...


.組件模板和樣式

類似於頁面,自定義組件擁有自己的 wxml 和模板 wxss 樣式。

   1.組件模板

組件的寫法和頁面的寫法相同,組件模板與組件數據結合後生成的數節點,

將被插入到組件的引用位置。在組件模板中提供一個<slot> 節點,用於承載組件

引用時候提供的子節點。

例如:

<view class="wrapper">

  <view>這裡是組件的內部節點</view>

  <slot></slot>

</view>

  引用在頁面的.json 文件中配置。

   "usingComponents": {

    "v-component": "/components/cs/cs"

    }

  "v-component" :為自定義的模板名字,頁面引用的時候用,

  "/components/cs/cs"  引用組件的路徑

頁面中引用 如下:

<v-component>

  <view>這裡是插入到組件slot中的內容</view>

</v-component>

 

2.組件中的模板數據綁定

與普通的模板數據綁定相同,動態像子組件傳遞數據。

例如:

<v-component  prop-a="{{dataA}}" prop-b="{{dataB}}">

  <view>這裡是插入到組件slot中的內容</view>

</v-component>

 

組件接收到頁面傳遞過來的數據,頁面可以通過setData 來改變綁定的綁定欄位。

(目前只能傳遞JSON數據)

 

 3.組件的wxml slot

預設情況下,一個組件的wxml 中只能有一個slot,需要使用多個slot 時,可以在組件js

聲明啟用。

Component({

options:{

multipleSlots: true // 在組件定義的選項中啟用多slot 支持

}

properties:{},

methods:{}

})

此時在組件就可以啟用多個slot,以不同的name 來區分。

  例如:

 <view class="wrapper">

<slot name=“head”></slot>

   <view>這裡是組件的內部節點</view>

   <slot name="footer"></slot>

 </view>

   在使用的時候

 <v-component >

   <view slot="head">slot中的頭部內容</view>

        <view slot="footer">slot中的底部內容</view>

</v-component>

 

4.組件樣式

組件對應wxss 文件的樣式,只對組件wxml 內的節點生效。編寫組件樣式時註意:

(1) 組件和引用的頁面,不能使用id選擇器,(#a),屬性選擇器([a])和標簽名屬性

 選擇器,請改用class 選擇器。

(2) 組件和引用組件的頁面中使用後代選擇器(.a .b) 在極端情況下會有非預期的表現。

(3)子元素選擇器(.a>.b) 只能用於view 組件與其子節點之間,用於其他組件可以能導致

   非預期的情況。

(4)繼承樣式,如font , color 會從外部組件繼承到組件內。

(5)除繼承樣式外,app.wxss 中的樣式,組件所在頁面中的樣式對自定義樣式無效。

6)組件可以指定節點的預設樣式 :host{color:yellow;}

 

 

5.外部樣式

組件接收外部傳入的樣式類,可以在Component 中用externalClasses 定義若幹個外部樣式

類,這個特性可以用實現類似於,view 組件的 hover-class屬性,頁面可以提供一個樣式類

賦予 view hover-class 這個一樣式類寫在頁面中,而非, view 組件的實現中。

 例如:

/* 組件 custom-component.js */

Component({

externalClasses:['my-class']

})

      <!-- 組件 custom-component.wxml -->

<v-component class="my-class" >

   這段文本的顏色由外部組建的 class 覺得

</v-component>

組件的使用或者可以指定這個樣式類對應的class, 就像使用普通屬性樣式一樣

頁面的WXML

<v-component  my-class="red-text"></v-component>

.red-text{

color:red;

}

 

 6.使用組件接收全局樣式

  預設情況下,自定義組件的樣式只受到wxss 的影響

(1) app.wxss 中使用了標簽名選擇器,影響到頁面和全部組件,

(2) 在自定義的組件中激活了 addGlobalClass 選項,這樣使自定義

組件能被app.wxss 或頁面的wxss 中的所有樣式。

 要激活 addGlobalClass 選項,只需在Component 構造中將 options.addGlobalClass

  欄位為true (當激活了 addGlobalClass 選項後,存在外部樣式污染樣式組件的風險)

 /* 組件 custom-component.js */ Component({ options: {     addGlobalClass: true,   }   })

 /* 組件 custom-component.wxml  */

<text class="red-text">

這段文字顏色由 `app.wxss`和頁面`wxss` 中的樣式定義來規定

</text>

/*app.wxxs*/

.red-text{

color:red;

}


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這個滑鼠點擊的效果只需要通過下麵這段代碼即可實現: 將如下代碼放在頁首、頁腳或者公告欄部分都可以! PS:css樣式和點擊的文字都可以在該代碼中自行修改成自己想要的。 ...
  • 網址收藏 : "React官網" , "React的Github" , "React的中文文檔" 1.react是什麼? React 起源於Facebook的內部項目,因為該公司對市場上所有的Javascript MVC框架都不滿意,決定自己寫一套,用來架設Instargm的網站。做完以後,發現很好 ...
  • Vue中使用樣式 綁定css 使用內聯樣式 </script> ...
  • vue-resource+iview上傳文件取消上傳 子組件: 父組件調用: ...
  • JavaScript 事件 HTML 事件是發生在 HTML 元素上的事情。 當在 HTML 頁面中使用 JavaScript 時, JavaScript 可以觸發這些事件。 1.HTML 事件 HTML 事件可以是瀏覽器行為,也可以是用戶行為。 以下是 HTML 事件的實例: HTML 頁面完成加 ...
  • LayaBox案例分享 小程式開篇(3) 不知不覺已經是上線小程式基礎篇的最後一篇了,今天我會把源碼發到本文的底部,有需要的可以拿去練手。 大家可以體驗一下,請掃碼: 這個頁面我們主要用到的知識有;佈局依然是WEUI;數據解析插件WxParse,下麵會額外分享一下WxParse的兩種用法;微信小程式 ...
  • 問題 父級元素不能被子元素內容撐開的解決辦法,父級元素沒有高度的解決辦法。 今天在寫網頁時遇到如下圖問題,解決問題後自己做個隨筆,希望幫到更多的學前端的童鞋! 問題圖片 問題描述 最外層的父級元素不能自適應高度-不能隨對象撐開沒有高度 當在對象內的盒子使用了float後,導致對象本身不能被撐開自適應 ...
  • 此插件是一位外國人寫的,官網API地址:https://photo-sphere-viewer.js.org/#methods 我只是記錄下我在使用此插件時用到的方法和相關屬性,以防以後忘記 1.按要求在頁面中引入文件後,使用以下方式調用,其它配置 jq選中的元素最後返回的是一個document,不 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...