本文作者:好JSER,來自原文地址
基礎的配置及視圖層、邏輯層自己看文檔 [微信小程序文檔][1] 這里只說一下自己的經驗總結 提醒
eg:頁面A->頁面B->頁面C->頁面D->頁面E->(頁面F是跳轉不出來的) 注:不經過redirect,redirect后的頁面算是第一層,但是沒有-返回-按鈕
視圖元素單位設計時最好讓ui做成750px,開發中,ui是多少px,你寫成多少rpx就OK了,原理,自己查文檔去 頁面傳參<navigator url="/pages/detail/detail?id=2"></navigator> Page({ onLoad (opositions) { // 看看是不是你想要的 console.log(opositions.id) } }) 視圖響應每個頁面都有一個Page實例,響應就是該實例的setData方法觸發的, *直接給綁定數據賦值,數據會改變,但是視圖不會渲染 js文件 let config = { data: {} } Page(config) 事件綁定wxml文件 <view bindtap="tapHandler"></view> js文件 let config = { data: {}, tapHandler () { console.log('i am a handler') } }
bindtap的綁定最終會解析成方法名,所以bindtap=“tapHandler(參數)”,是會報錯的,—-沒有找到‘tapHandler(參數)’這個方法, 公用組件組件分三個文件,wxml、js、css wxml文件定義template模版,頁面里以import方式引入,這樣能控制傳入模版的數據 js文件exports一個對象,頁面里以require方式引入,并且合并到Page實例化的配置對象中 let tempateConfig = require('url') let config = { data: {} } config = Object.assign(config, templateConfig) Page(config) css文件以@import方式導入 開發技巧
1.錨點 wxml文件 <view> <button data-hash="hash1" bindtap="goHash">點擊定向hash1</button> <button data-hash="hash2" bindtap="goHash">點擊定向hash2</button> </view> <scroll-view scroll-y="true" scroll-into-view="{{toView}}"> <view id="hash1"></view> <view id="hash2"></view> </scroll-view> js文件 Page({ data: { toView: 'hash1' }, goHash (e) { let hash = e.currentTarget.dataset.hash this.setData({ toView: hash }) } }) 但是這是單向的,只能點擊按鈕,跳轉錨點,屏幕滑動到相應錨點,toView屬性不會相應改變,當然,如果你能通過bindscroll事件動態取到的相關數據,并且最終能把toView計算出來,就另說了,但不要想操作dom獲取元素寬高什么的,對不起,微信的dom賣完了,沒有
2.滾動加載 wxml文件 <scroll-view scroll-y="true" scroll-into-view="{{toView}}" bindscrolltolower=“loadMovies”> <view wx:for="{{movies}}" wx:key="index"> {{item.name}} </view> </scroll-view> js文件 Page({ data: { movies: [] }, getMovies () { let _self = this wx.request({ url: 'https://......', data: {}, success: function(res) { // res.data才是你后端返回的真實數據 _self.setData({ movies: res.data }) } }) }, loadMovies () { // 得到要更新的數據,setData重置movies } }) 可以做懶加載,也可以做預加載,具體邏輯自己想吧 暫時就這些啦。。。最后抱怨一句,咋就不支持外鏈呢,引共用組件咋那么麻煩呢 |