国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信小程序學習筆記之函數定義、頁面渲染圖文詳解

2019-11-19 11:55:53
字體:
來源:轉載
供稿:網友

前面一篇介紹了微信小程序目錄結構、基本配置。這里再來介紹一下函數定義、頁面渲染。

小程序邏輯app.js:定義App函數用來注冊一個小程序,包含全局數據和函數,指定小程序的生命周期回調等。整個小程序只有一個 App 實例,全部頁面共享使用。

//app.jsApp({ onLaunch: function () { // 展示本地存儲能力 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) // 登錄 wx.login({  success: res => {  // 發送 res.code 到后臺換取 openId, sessionKey, unionId  } }) // 獲取用戶信息 wx.getSetting({  success: res => {  if (res.authSetting['scope.userInfo']) {   // 已經授權,可以直接調用 getUserInfo 獲取頭像昵稱,不會彈框   wx.getUserInfo({   success: res => {    // 可以將 res 發送給后臺解碼出 unionId    this.globalData.userInfo = res.userInfo    // 由于 getUserInfo 是網絡請求,可能會在 Page.onLoad 之后才返回    // 所以此處加入 callback 以防止這種情況    if (this.userInfoReadyCallback) {    this.userInfoReadyCallback(res)    }   }   })  }  } }) }, globalData: { userInfo: null }})

生命周期函數:

屬性 類型 描述 觸發時機
onLaunch Function 生命周期回調―監聽小程序初始化 小程序初始化完成時(全局只觸發一次)
onShow Function 生命周期回調―監聽小程序顯示 小程序啟動,或從后臺進入前臺顯示時
onHide Function 生命周期回調―監聽小程序隱藏 小程序從前臺進入后臺時
onError Function 錯誤監聽函數 小程序發生腳本錯誤,或者 api 調用失敗時觸發,會帶上錯誤信息
onPageNotFound Function 頁面不存在監聽函數 小程序要打開的頁面不存在時觸發,會帶上頁面信息回調該函數
其他 Any 開發者可以添加任意的函數或數據到 Object 參數中,用 this 可以訪問

頁面js:

頁面js中定義分享函數,定義之后右上角菜單才可以分享:

 

Page({ onShareAppMessage: function (res) { if (res.from === 'button') {  // 來自頁面內轉發按鈕  console.log(res.target) } return {  title: '自定義轉發標題',  path: '/page/user?id=123',  imageUrl: 'https://msllws.top/Public/uploads/2018-09-19/5ba1efaec1b1f.jpg' } }})

頁面js中調用全局函數:

var AppInstance = getApp()console.log(AppInstance.globalData)

工具欄utils.js:存放常用的工具函數,例如日期格式化、時間格式化函數。定義后通過module.exports注冊,在其他頁面才可以使用。

練習:做出如下圖頁面及樣式

weather.js:

Page({ data: { temp:"4℃", low:"-1℃", high:"10℃", type:"晴", city:"北京", week:"星期四", weather:"無持續風行 微風級" }})

weather.wxml:

<view class="content"> <view class="today"> <view class="info">  <view class="temp">{{temp}}</view>  <view class='lowhigh'>{{low}}</view>  <view class='type'>{{type}}</view>  <view class='city'>{{city}}</view>  <view class='week'>{{week}}</view>  <view class='weather'>{{weather}}</view> </view> </view></view>

weather.wxss:

.content{ font-family: 微軟雅黑,宋體; font-size:14px; background-size: cover; height: 100%; width: 100%; color: #333333;}.today{ padding-top: 70rpx; height: 50%;}.temp{ font-size: 80px; text-align: center;}.city{ font-size:20px; text-align: center; margin-top: 20rpx; margin-right: 10rpx;}.lowhigh{ font-size: 12px; text-align: center; margin-top: 30rpx;}.type{ font-size: 16px; text-align: center; margin-top: 30rpx;}.week{ font-size: 12px; text-align: center; margin-top: 30rpx;}.weather{ font-size: 12px; text-align: center; margin-top: 20rpx;}

數據綁定:

<!--wxml--><view> {{message}} </view>

page.js:

Page({ data: { message: 'Hello MINA!' }})

列表渲染:

<!--wxml--><view wx:for="{{array}}"> {{item}} </view>

page.js

Page({ data: { array: [1, 2, 3, 4, 5] }})

條件渲染:

<!--wxml--><view wx:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view><view wx:elif="{{view == 'APP'}}"> APP </view><view wx:else="{{view == 'MINA'}}"> MINA </view>
// page.jsPage({ data: { view: 'MINA' }})

模板:

<!--wxml--><template name="staffName"> <view> FirstName: {{firstName}}, LastName: {{lastName}} </view></template><template is="staffName" data="{{...staffA}}"></template><template is="staffName" data="{{...staffB}}"></template><template is="staffName" data="{{...staffC}}"></template>
// page.jsPage({ data: { staffA: {firstName: 'Hulk', lastName: 'Hu'}, staffB: {firstName: 'Shang', lastName: 'You'}, staffC: {firstName: 'Gideon', lastName: 'Lin'} }})

事件:

<view bindtap="add"> {{count}} </view>
Page({ data: { count: 1 }, add: function(e) { this.setData({  count: this.data.count + 1 }) }})

希望本文所述對大家微信小程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海口市| 黑河市| 龙里县| 庐江县| 麟游县| 桂平市| 江川县| 绍兴县| 溧阳市| 扎鲁特旗| 广西| 二连浩特市| 凤阳县| 合水县| 武山县| 永昌县| 柳州市| 溧阳市| 潞西市| 民勤县| 扶绥县| 曲沃县| 高雄市| 清远市| 承德市| 永定县| 永善县| 武胜县| 张家口市| 新野县| 册亨县| 娱乐| 镇原县| 成武县| 阿拉善左旗| 江阴市| 康乐县| 额济纳旗| 钟山县| 昌黎县| 嘉祥县|