實(shí)例一: include方式引用header.wxml文件
創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元十堰鄖陽做網(wǎng)站,已為上家服務(wù),為十堰鄖陽各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
文件引用對于代碼的重用非常重要,例如在web開發(fā)中我們可以將公用的header部分和footer等部分進(jìn)行提取,然后在需要的地方進(jìn)行引用。
微信小程序里面,是包含引用功能的——include、import。這兩個(gè)引用文件的標(biāo)簽,使用基本差不多,這里先說一下include。
微信中的視圖文件引用,引用過來的都是沒有渲染的,基本類似于直接將引用過來的文件復(fù)制到引用位置,所以我們需要重新對其渲染。
實(shí)例說明
這里將默認(rèn)創(chuàng)建的用戶頭像信息提取出到header.wxml中,做為頭部引用,分別由index2.wxml和index3.wxml引用,引用方式為include。
實(shí)例代碼
在pages中創(chuàng)建common/header.wxml
從index.wxml中將系統(tǒng)默認(rèn)創(chuàng)建的用戶信息結(jié)構(gòu)復(fù)制到header.wxml中。
header.wxml代碼:
<!--pages/common/header.wxml-->
<view bindtap="bindViewTap" class="userinfo">
<image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</view>
因?yàn)閮蓚€(gè)頁面都要包含header.wxml,所以樣式文件就不重復(fù)寫了,這里直接將樣式拷貝到app.wxss。
app.wxss代碼:
/**app.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
}
創(chuàng)建index/index2和index/index3

index2.wxml內(nèi)容:
<!--pages/index/index2.wxml-->
<view class="container">
<include src="../common/header.wxml" />
<view class="myBtn">
<button type="primary" bindtap="goIndex3">進(jìn)入index3</button>
</view>
</view>
因?yàn)閕ndex2.wxml和index3.wxml都需要userInfo數(shù)據(jù),所以這邊在index2獲取到數(shù)據(jù)后,使用本地存儲(chǔ)進(jìn)行存儲(chǔ),index3.wxml讀取本地存儲(chǔ)。
index2.js代碼:
// pages/index/index2.js
var app = getApp()
Page({
data: {
userInfo: {},
},
goIndex3:function(){
wx.navigateTo({
url: 'index3'
})
},
onLoad: function () {
console.log('onLoad')
var that = this
app.getUserInfo(function (userInfo) {
that.setData({
userInfo: userInfo
})
//本地存儲(chǔ)
wx.setStorageSync('userInfo', userInfo)
})
}
})
index3.wxml代碼:
<!--pages/index/index3.wxml--> <view class="container"> <include src="../common/header.wxml" /> <text>pages/index/index3.wxml</text> </view>
index3.js代碼:
// pages/index/index3.js
Page({
data:{
userInfo: {},
},
onLoad:function(options){
this.setData({
userInfo: wx.getStorageSync('userInfo')
})
},
})
實(shí)例效果

實(shí)例二: import方式引用footer.wxml文件
這個(gè)實(shí)例使用import來引用文件,import比include要強(qiáng)大的多,待會(huì)我再對于這兩都進(jìn)行一下對比。
import引用方式涉及到了微信的模版(template),這里先說一下template。
微信視圖模版(template)
template也是寫在.wxml中,然后使用<template>...</template>標(biāo)記指定模版信息,模版下定義:
<template name="msgItem"> 視圖代碼... </template>
使用name屬性,作為模板的名字。
使用模版:
<template is="msgItem" data="{{...item}}"/>data為向模版?zhèn)魅氲臄?shù)據(jù)。
實(shí)例說明
使用模版的方式創(chuàng)建footer視圖代碼片,然后用import和template進(jìn)行代碼的調(diào)用。
實(shí)例代碼
創(chuàng)建footer.wxml
footer.wxml代碼:
index2.wxml代碼:
實(shí)例效果
實(shí)例三: 小程序退出時(shí)清除本地?cái)?shù)據(jù)
這里涉及到了小程序的生命周期問題,可以類比一下安卓生命周期,小程序的生命周期在app.js中進(jìn)行定義:
| 屬性 | 類型 | 描述 | 觸發(fā)時(shí)機(jī) |
|---|---|---|---|
| onLaunch | Function | 生命周期函數(shù)–監(jiān)聽小程序初始化 | 當(dāng)小程序初始化完成時(shí),會(huì)觸發(fā) onLaunch(全局只觸發(fā)一次) |
| onShow | Function | 生命周期函數(shù)–監(jiān)聽小程序顯示 | 當(dāng)小程序啟動(dòng),或從后臺進(jìn)入前臺顯示,會(huì)觸發(fā) onShow |
| onHide | Function | 生命周期函數(shù)–監(jiān)聽小程序隱藏 | 當(dāng)小程序從前臺進(jìn)入后臺,會(huì)觸發(fā) onHide |
| onError | Function | 錯(cuò)誤監(jiān)聽函數(shù) | 當(dāng)小程序發(fā)生腳本錯(cuò)誤,或者 api 調(diào)用失敗時(shí),會(huì)觸發(fā) onError 并帶上錯(cuò)誤信息 |
page生命周期:
| 屬性 | 類型 | 描述 |
|---|---|---|
| onLoad | Function | 生命周期函數(shù)–監(jiān)聽頁面加載 |
| onReady | Function | 生命周期函數(shù)–監(jiān)聽頁面初次渲染完成 |
| onShow | Function | 生命周期函數(shù)–監(jiān)聽頁面顯示 |
| onHide | Function | 生命周期函數(shù)–監(jiān)聽頁面隱藏 |
| onUnload | Function | 生命周期函數(shù)–監(jiān)聽頁面卸載 |

這里用到了onUnload事件。
index2.js代碼:
include 與 import
import可以在該文件中使用目標(biāo)文件定義的template
include可以將目標(biāo)文件除了<template/>的整個(gè)代碼引入,相當(dāng)于是拷貝到include位置
import的作用域
import有作用域的概念,即只會(huì)import目標(biāo)文件中定義的template,而不會(huì)import目標(biāo)文件import的template。
如:C import B,B import A,在C中可以使用B定義的template,在B中可以使用A定義的template,但是C不能使用A定義的template
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
網(wǎng)站欄目:詳解微信小程序入門五:wxml文件引用、模版、生命周期
新聞來源:http://www.chinadenli.net/article16/peisdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、搜索引擎優(yōu)化、Google、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)