前言:
除了component,微信小程序中還有另一種組件化你的方式template模板,這兩者之間的區(qū)別是,template主要是展示,方法則需要在調(diào)用的頁(yè)面中定義。而component組件則有自己的業(yè)務(wù)邏輯,可以看做一個(gè)獨(dú)立的page頁(yè)面。簡(jiǎn)單來(lái)說(shuō),如果只是展示,使用template就足夠了,如果涉及到的業(yè)務(wù)邏輯交互比較多,那就最好使用component組件了。
一. template模板:
1. 模板創(chuàng)建:
建議單獨(dú)創(chuàng)建template目錄,在template目錄中創(chuàng)建管理模板文件。
由于模板只有wxml、wxss文件,而且小程序開發(fā)工具并不支持快速創(chuàng)建模板,因此就需要直接創(chuàng)建wxml、wxss文件了,一個(gè)template的模板文件和樣式文件只需要命名相同即可。如果模板較多,建議在template目錄下再創(chuàng)建子目錄,存放單獨(dú)的模板。

2. 模板文件:
template.wxml文件中能寫多個(gè)模板,用name區(qū)分:
<template name="demo"><view class='tempDemo'> <text class='name'>FirstName: {{firstName}}, LastName: {{lastName}}</text> <text class='fr' bindtap="clickMe" data-name="{{'Hello! I am '+firstName+' '+LastName+'!'}}"> clcikMe </text></view></template>3. 樣式文件:
模板擁有自己的樣式文件(用戶自定義)。
/* templates/demo/index.wxss */ .tempDemo{ width:100%; } view.tempDemo .name{color:darkorange}4. 頁(yè)面引用:
page.wxml
<!--導(dǎo)入模板--><import src="../../templates/demo/index.wxml" /><!--嵌入模板--><view> <text>嵌入模板</text> <template is="demo" data="{{...staffA}}"></template><!--傳入?yún)?shù),必須是對(duì)象--> <template is="demo" data="{{...staffB}}"></template><!--傳入?yún)?shù),必須是對(duì)象--> <template is="demo" data="{{...staffC}}"></template><!--傳入?yún)?shù),必須是對(duì)象--></view>page.wxss
@import "../../templates/demo/index.wxss" /*引入template樣式*/
page.js
Page({ /** * 頁(yè)面的初始數(shù)據(jù) */ data: { staffA: { firstName: 'Hulk', lastName: 'Hu' }, staffB: { firstName: 'Shang', lastName: 'You' }, staffC: { firstName: 'Gideon', lastName: 'Lin' } }, clickMe(e) { wx.showToast({ title: e.currentTarget.dataset.name, icon: "none", duration: 100000 }) } ......})備注:
一個(gè)模板文件中可以有多個(gè)template,每個(gè)template均需定義name進(jìn)行區(qū)分,頁(yè)面調(diào)用的時(shí)候也是以name指向?qū)?yīng)的template;
template模板沒有配置文件(.json)和業(yè)務(wù)邏輯文件(.js),所以template模板中的變量引用和業(yè)務(wù)邏輯事件都需要在引用頁(yè)面的js文件中進(jìn)行定義;
新聞熱點(diǎn)
疑難解答
圖片精選