最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解微信小程序入門五: wxml文件引用、模版、生命周期

 更新時間:2017年01月20日 08:59:01   作者:lecepin  
本篇文章主要介紹了詳解微信小程序入門五: wxml文件引用、模版、生命周期,具有一定的參考價值,有興趣的可以了解一下。

實例一: include方式引用header.wxml文件

文件引用對于代碼的重用非常重要,例如在web開發(fā)中我們可以將公用的header部分和footer等部分進行提取,然后在需要的地方進行引用。

微信小程序里面,是包含引用功能的——include、import。這兩個引用文件的標簽,使用基本差不多,這里先說一下include。

微信中的視圖文件引用,引用過來的都是沒有渲染的,基本類似于直接將引用過來的文件復制到引用位置,所以我們需要重新對其渲染。

實例說明

這里將默認創(chuàng)建的用戶頭像信息提取出到header.wxml中,做為頭部引用,分別由index2.wxml和index3.wxml引用,引用方式為include。

實例代碼

在pages中創(chuàng)建common/header.wxml

從index.wxml中將系統(tǒng)默認創(chuàng)建的用戶信息結(jié)構(gòu)復制到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>

因為兩個頁面都要包含header.wxml,所以樣式文件就不重復寫了,這里直接將樣式拷貝到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">進入index3</button>
  </view>  
</view>

因為index2.wxml和index3.wxml都需要userInfo數(shù)據(jù),所以這邊在index2獲取到數(shù)據(jù)后,使用本地存儲進行存儲,index3.wxml讀取本地存儲。

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
   })

   //本地存儲
   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')
  })
 },
})

實例效果

 

實例二: import方式引用footer.wxml文件

這個實例使用import來引用文件,import比include要強大的多,待會我再對于這兩都進行一下對比。

import引用方式涉及到了微信的模版(template),這里先說一下template。

微信視圖模版(template)

template也是寫在.wxml中,然后使用<template>...</template>標記指定模版信息,模版下定義:

<template name="msgItem">
  視圖代碼...
</template>

使用name屬性,作為模板的名字。

使用模版:

<template is="msgItem" data="{{...item}}"/>

data為向模版?zhèn)魅氲臄?shù)據(jù)。

實例說明

使用模版的方式創(chuàng)建footer視圖代碼片,然后用import和template進行代碼的調(diào)用。

實例代碼

創(chuàng)建footer.wxml

  

footer.wxml代碼:

  

index2.wxml代碼:

  

實例效果

  

實例三: 小程序退出時清除本地數(shù)據(jù)

這里涉及到了小程序的生命周期問題,可以類比一下安卓生命周期,小程序的生命周期在app.js中進行定義:

屬性 類型 描述 觸發(fā)時機
onLaunch Function 生命周期函數(shù)–監(jiān)聽小程序初始化 當小程序初始化完成時,會觸發(fā) onLaunch(全局只觸發(fā)一次)
onShow Function 生命周期函數(shù)–監(jiān)聽小程序顯示 當小程序啟動,或從后臺進入前臺顯示,會觸發(fā) onShow
onHide Function 生命周期函數(shù)–監(jiān)聽小程序隱藏 當小程序從前臺進入后臺,會觸發(fā) onHide
onError Function 錯誤監(jiān)聽函數(shù) 當小程序發(fā)生腳本錯誤,或者 api 調(diào)用失敗時,會觸發(fā) onError 并帶上錯誤信息

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可以在該文件中使用目標文件定義的template

include可以將目標文件除了<template/>的整個代碼引入,相當于是拷貝到include位置

import的作用域

import有作用域的概念,即只會import目標文件中定義的template,而不會import目標文件import的template。

如:C import B,B import A,在C中可以使用B定義的template,在B中可以使用A定義的template,但是C不能使用A定義的template

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JS實現(xiàn)大數(shù)相加大數(shù)相乘示例詳解

    JS實現(xiàn)大數(shù)相加大數(shù)相乘示例詳解

    這篇文章主要為大家介紹了JS實現(xiàn)大數(shù)相加大數(shù)相乘示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • JavaScript中5個常用的對象

    JavaScript中5個常用的對象

    JavaScript是一門腳本語言,不同于Python的是,它是一門瀏覽器腳本語言,而Python則是服務器腳本語言,我們不光要會Python,還要會JavaScript,因為它對做網(wǎng)頁方面是有很大作用的。本篇內(nèi)容小編就來詳細解說JavaScript常用的對象,需要的朋友可以參考一下
    2021-10-10
  • 微前端之Web組件自定義元素示例詳解

    微前端之Web組件自定義元素示例詳解

    這篇文章主要為大家介紹了微前端之Web組件自定義元素示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 微信小程序之picker日期和時間選擇器

    微信小程序之picker日期和時間選擇器

    本篇文章主要介紹了微信小程序之picker選擇器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 微信小程序 頁面跳轉(zhuǎn)如何實現(xiàn)傳值

    微信小程序 頁面跳轉(zhuǎn)如何實現(xiàn)傳值

    這篇文章主要介紹了微信小程序 頁面跳轉(zhuǎn)如何實現(xiàn)傳值的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Svelte嵌套組件preventDefault構(gòu)建Web應用

    Svelte嵌套組件preventDefault構(gòu)建Web應用

    這篇文章主要介紹了Svelte嵌套組件preventDefault構(gòu)建Web應用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • JavaScript前端構(gòu)建工具原理的理解

    JavaScript前端構(gòu)建工具原理的理解

    這篇文章主要為大家介紹了JavaScript前端構(gòu)建工具原理的理解分享,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • TypeScript編寫自動創(chuàng)建長度固定數(shù)組的類型工具詳解

    TypeScript編寫自動創(chuàng)建長度固定數(shù)組的類型工具詳解

    這篇文章主要為大家介紹了TS編寫自動創(chuàng)建長度固定數(shù)組的類型工具詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 微信小程序 地圖map詳解及簡單實例

    微信小程序 地圖map詳解及簡單實例

    這篇文章主要介紹了微信小程序 地圖map詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 詳解如何在?JavaScript中使用媒體查詢

    詳解如何在?JavaScript中使用媒體查詢

    這篇文章主要為大家介紹了詳解如何在?JavaScript中使用媒體查詢,<BR>有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論

贵定县| 揭东县| 德清县| 葫芦岛市| 北安市| 运城市| 华蓥市| 黄平县| 昆山市| 永德县| 神池县| 龙海市| 郁南县| 潮州市| 兴业县| 信宜市| 蓬安县| 涟源市| 黄冈市| 泰顺县| 阿拉善盟| 无锡市| 嘉定区| 读书| 威信县| 中方县| 馆陶县| 改则县| 泗洪县| 红桥区| 广汉市| 岱山县| 沧源| 石城县| 清水河县| 霍州市| 新乡县| 哈密市| 教育| 嘉荫县| 道孚县|