https://developers.weixin.qq....示例源碼
javascript
配置頁面路徑
./app.jsoncss
{ "pages":[ "pages/index/index", "pages/logs/logs", "pages/abstractCom/abstractCom", "pages/com1/com1", "pages/com2/com2" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle":"black" } }
聲明抽象組件 abstractComhtml
./pages/abstractCom/abstractCom.json
{ "component": true, "componentGenerics": { "abstract": true }, "usingComponents": {} }
./pages/abstractCom/abstractCom.wxml
<!--pages/abstractCom/abstractCom.wxml--> <abstract></abstract>
./pages/abstractCom/abstractCom.wxss
/* pages/abstractCom/abstractCom.wxss */
./pages/abstractCom/abstractCom.js
// pages/abstractCom/abstractCom.js // 抽象組件 Component({ /** * 組件的屬性列表 */ properties: { }, /** * 組件的初始數據 */ data: { }, /** * 組件的方法列表 */ methods: { } })
聲明抽象組件會用到的實例子組件,動態組件com1java
./pages/com1/com1.json
{ "component": true, "usingComponents": {} }
./pages/com1/com1.wxml
<!--pages/com1/com1.wxml--> <text>這是動態組件1pages/com1/com1.wxml</text>
./pages/com1/com1.wxss
/* pages/com1/com1.wxss */
./pages/com1/com1.js
// pages/com1/com1.js // 抽象組件所需自組件1 Component({ /** * 組件的屬性列表 */ properties: { }, /** * 組件的初始數據 */ data: { }, /** * 組件的方法列表 */ methods: { } })
聲明抽象組件會用到的實例子組件,動態組件com2git
./pages/com2/com2.json
{ "component": true, "usingComponents": {} }
./pages/com2/com2.wxml
<!--pages/com2/com2.wxml--> <text>這是動態組件1pages/com1/com1.wxml</text>
./pages/com2/com2.wxss
/* pages/com2/com2.wxss */
./pages/com2/com2.js
// pages/com2/com2.js // 抽象組件所需自組件2 Component({ /** * 組件的屬性列表 */ properties: { }, /** * 組件的初始數據 */ data: { }, /** * 組件的方法列表 */ methods: { } })
聲明使用抽象組件的主頁面github
./pages/index/index.json
{ "usingComponents": { "abstract-com": "../abstractCom/abstractCom", "com1": "../com1/com1", "com2": "../com2/com2" } }
./pages/index/index.wxml
<!--index.wxml--> <view class="container"> <abstract-com generic:abstract="com1"></abstract-com> <abstract-com generic:abstract="com2"></abstract-com> </view>
./pages/index/index.wxss
/**index.wxss**/
./pages/index/index.js
//index.js //獲取應用實例 const app = getApp() Page({ data: { }, onLoad: function () { } })
<hr/>json
抽象節點能夠指定一個默認組件,當具體組件未被指定時,將建立默認組件的實例。默認組件能夠在 componentGenerics 字段中指定:小程序
聲明抽象組件 abstractCom
./pages/abstractCom/abstractCom.json
{ "component": true, "componentGenerics": { "abstract": { "default": "../com1/com1" } }, "usingComponents": {} }
./pages/index/index.wxml
<!--index.wxml--> <view class="container"> <abstract-com generic:abstract="com1"></abstract-com> <abstract-com generic:abstract="com2"></abstract-com> <abstract-com></abstract-com> </view>