1. 程式人生 > >微信小程式小結之框架

微信小程式小結之框架

微信小程式學習小結

最近做了個微信小程式的小專案,類似於聽歌識曲的小遊戲。由於專案很緊,邊學邊用,現在有空了打算做個學習小結,這裡總結小程式的整體框架,生命週期,路由,還有傳值等,歡迎互相學習。

檔案格式

.js: JS 檔案,用於書寫邏輯

.json: 設定檔案

.wxss: 類似 Css 檔案,用於設定樣式

.wxml: 類似 Html 檔案,用於設定結構

目錄結構

一個小程式的目錄分為主體,頁面以及其他資源

(1)主體:專案根目錄,用於整個小程式的初始化

(2)頁面:每個頁面都有自己的結構、邏輯和資料

(3)其他資源:可放置外掛或者圖片等資源

生命週期

(1)主體週期

onLaunch – 監聽小程式初始化

onShow – 監聽小程式顯示(當小程式啟動,或從後臺進入前臺顯示,會觸發)

onHide – 監聽小程式隱藏(小程式從前臺進入後臺,會觸發)

onError – 錯誤監聽函式

(2)頁面生命週期

data –頁面的初始資料

onLoad –監聽頁面載入

onReady –監聽頁面初次渲染完成

onShow –監聽頁面顯示

onHide –監聽頁面隱藏

onUnload –監聽頁面解除安裝

(3)小程式生命週期完整版

路由

(1)頁面棧

小程式的路由以棧的方式管理,後進先出

(2)跳轉

1.wx.navigateTo({url:’./../XXX’}),保留當前頁面,跳轉到應用內的某個頁面

2.wx.redirectTo({url:’./../XXX’}),關閉當前頁面,跳轉到應用內的某個頁面

3.wx.navigateBack({ delta: X}),關閉當前頁面,返回上一頁面或多級頁面

getCurrentPages() 函式用於獲取當前頁面棧的例項

例子(跳轉新頁面後,之前頁面重新整理):

//在頁面onLoad中
//使上一個頁面重新整理
var pages = getCurrentPages();
if (pages.length > 1) {
  //上一個頁面例項物件  
  var prePage = pages[pages.length - 2];
  //觸發上個介面, changeData為自己封裝的重新整理函式
  prePage.changeData()
} 

傳值

(1)跨頁面傳值

1.使用 navigator 標籤或者 wx.navigator

1.1 navigator 標籤(在url的頁面地址後面加上“?”和引數)

<navigator url="/page/navigate/navigate?title=navigate&id=123456" hover-class="navigator-hover">跳轉到新頁面</navigator>

傳遞了引數: {title:’navigate’,id=’123456’}

在下個頁面 onLoad 中獲取

onLoad:function(options){
    this.setData({
        title:options.title,
        id:options.id
    })
}

i1.2 wx.navigator

wx.navigateTo({
  url: "/page/navigate/navigate?title=" + 引數
})

如果要傳陣列, 字典等複雜型別, 要先用 JSON.stringify() 把引數轉成字串傳遞

2.用 getCurrentPages() 獲取棧中全部頁面的, 然後把資料寫入相應頁面(只適合已生成的頁面)

var pages = getCurrentPages();
wx.navigateBack({
  delta: 1,
  success:function(){
    var userInfo = {
      niceName: _this.data.niceName,
      avatarUrl: _this.data.avatarUrl
    }
    pages[pages.length - 2].setData({ userInfo: userInfo })
  } 
})

3.寫入本地, 跨頁面取出來

//當前頁面
wx.setStorageSync({ 'niceName',_this.data.niceName})
wx.setStorageSync({ 'avatarUrl',_this.data.avatarUrl})

//下一頁面
var niceName = wx.getSystemInfo({ 'niceName',_this.data.niceName})
var avatarUrl = wx.getSystemInfo({ 'avatarUrl',_this.data.avatarUrl})

(2)頁面間傳值

設定 id 或者 data-xx 傳遞

//.wxml
<view bindtap="bindTap" id="XXX" data-name="XXX"></view>

//.js
bindTap:function(e){
    //id
    var id = e.currentTarget.id
    //data-xx
    var name = e.currentTarget.dataset.name 
}

相關推薦

程式小結框架

微信小程式學習小結 最近做了個微信小程式的小專案,類似於聽歌識曲的小遊戲。由於專案很緊,邊學邊用,現在有空了打算做個學習小結,這裡總結小程式的整體框架,生命週期,路由,還有傳值等,歡迎互相學習。 檔案格式 .js: JS 檔案,用於書寫邏輯 .

程式開發wepy框架

wepy是由騰訊團隊推出的小程式元件化開發框架,為什麼一開始推出的時候不直接用這一套!?官網地址 WePY 是一款讓小程式支援元件化開發的框架,通過預編譯的手段讓開發者可以選擇自己喜歡的開發風格去開發小程式。框架的細節優化,Promise,Async Func

程式學習路】----使用globalData函式設定全域性變數

我們在app.js中設定需要的全域性變數的引數,比如公司名稱等 //app.js App({ globalData: { title: 'tomatocc' } }) 然後我們就可以在某個頁面的js檔案中(比如index.js)的data數組裡面去直

程式學習路】----使用template模板所遇到的問題

官方文件的demo過於簡單,本人嘗試幾次也沒有弄懂,找了幾個demo後才漸漸瞭解清楚小程式的模板是怎麼玩的。並且展示一個簡單的demo 首先來看我們的專案結構:主要用到index.js,index.wxml,temp.js,temp.wxml 首先,我

程式專案失物招領平臺-1.專案的建立

1.開發工具:微信web開發者工具 2.相關文件:微信公共平臺 3.使用到的微信小程式UI元件庫:wuss-weapp 4.使用微信web開發者工具建立一個小程式專案,專案名:lostandfound(appId可到微信公眾平臺申請,若沒有appId小程式的一些相關的功能無法使用) 5.將wus

程式——元件swiper

大家看到許多網頁的首頁面都會有圖片的輪播,圖片輪播:既能通過圖片增加整個頁面的美觀程度,又能讓客戶一眼看出網頁想要表達的內容。那麼,今天我們就通過swiper實現圖片的輪播效果,簡單又好看。 /**wxml**/ <swiper  indicator={{是否顯示面板指示點}}

程式文件 --框架--windows全域性配置

window 用於設定小程式的狀態列、導航條、標題、視窗背景色。 屬性 型別 預設值 描述 最低版本 navigationBarBackgroundColor HexColor

程式入門使用者登陸態

微信小程式的設定是不支援session,那麼cookie之流肯定是用不了的。微信對wx.request這個API做了修改,小程式發起的請求並不是直接請求我們的後臺伺服器,而是先通過微信的伺服器再發送到我們的後臺伺服器,既然請求都是要通過微信的伺服器傳送到我們的伺服器,那麼我們的伺服器也就無從識別請求

幾款程式快速開發框架

簡介:微信小程式是一種全新的連線使用者與服務的方式。那麼怎樣才能快速開發一個小程式呢?下面小編為大家介紹幾款小程式快速開發框架。WePY騰訊官方開源的小程式元件化開發框架,目前有1.4w+Star ,一直在更新著,社群活躍 ... 微信小程式是一種全新的連線使用者與服務的

未明學院學員報告:「最強程式打造路」

報告作者:鄒格格、馮雨晴、劉儼黎      未明學院商業資料分析訓練營9月班學員 報告名稱:《最強微信小程式打造之路-微信小程式專案分析報告》 自2017年1月9日小程式正式上線後,微信以不斷的開放平臺能力,極有耐心地在為小程式逐步加溫。在

程式小結框架

檔案格式 .js: JS 檔案,用於書寫邏輯 .json: 設定檔案 .wxss: 類似 Css 檔案,用於設定樣式 .wxml: 類似 Html 檔案,用於設定結構 目錄結構 一個小程式的目錄分為主體,頁面以及其他資源 (1)主體:專案根目錄,用於整個小程

程式:開發框架選擇

接觸微信小程式有較長時間了,一直都是基於微信原生控制元件進行開發,最開始一些簡單的專案沒感覺到什麼不適,但隨著深入,慢慢的發現了一些不足,如記憶體及快取管理麻煩、控制元件選擇較少需要自定義、複雜動畫難控制、小程式和h5互動難度大、非同步回撥處理麻煩等,於是決定試試第三方開發框架

程式開發小米商城(一)

小程式開發之小米商城Lite 剛接觸小程式不久,感覺相對來說比較簡單,就自己花了五六天做了一個專案,因為本身也是米粉,就看中了小米的微信小程式(可憐國慶擼了幾天的程式碼,哈哈),話不多說,先上效果圖吧。 算了算了。本來還打算上gif圖,但是太難搞了,說明一下吧。

程式CSSFlex佈局

相信剛開始學習開發小程式的初學者一定對介面的佈局很困擾,不知道怎麼佈局,怎麼擺放位置,其原因是不瞭解CSS樣式的屬性,所以,今天程式碼君打算寫一篇關於CSS的教程,給大家普及一下。 說起CSS佈局,首先要講解的就是FLex佈局,這個可以說是一個萬能鑰匙,遇到什麼

程式裡面的標籤和html標籤的對比、程式基礎常用控制元件

微信小程式和html5標籤的區別: HTML5 微信小程式 <h1></h1>...<h6></h6> <p>&l

程式學習路(一)

1、前言 微信小程式所使用的是騰訊自己開發的MINA框架,MINA框架跟主流框架有很大的相似之處,是一個MVVM框架,很慶幸本人先前有學過一點點VUE所以入門MINA框架還算比較順利,由於需要完全熟悉MINA框架我還需要學習很多,所以微信小程式學習之路篇打算一

[程式]商城購買商品數量實現

正文: 這裡有三種變更數量的方式, 加號,減號,input輸入 , 這裡做了限制,數量不能小於等於0並且不能超過現有庫存,下面是功能實現程式碼。     <view class="dian">       <view class="cun page

程式學習路——頁面跳轉

前言 本以為微信小程式的頁面跳轉只是幾個簡單的api,一開始就沒太留意,在實際工作中發現,微信小程式的頁面跳轉也有很多地方應該注意,其中之一就是因為頁面跳轉而觸發的生命週期函式,這個點我認為是很重要的一個點,因此,本篇就把這兩個點放在一起記錄起來,方便日後翻閱

程式開發rpx 的使用說明

最近正著手開發微信小程式,才發現自己差的還是有點遠的。因為在之前的工作中,也都是在閒魚時間通過瀏覽官網api,寫點簡單的demo#hello world#。當我真正去使用它開發專案時,才發現其奧祕頗深。

程式開發SSL證書相關問題

最重要的放最上面:阿里雲CDN 使用的是 Nginx (.crt為證書,.key為私鑰) 阿里雲證書格式說明地址 ssl證書其實本站有很多相關的文章,但是沒有針對ssl證書做過專門的說明,最近發現,還是有很多同學,困擾在這個地方;所以特整理一些有用的知識放在