搜尋
首頁微信小程式微信開發微信小程式開發一週總結

微信小程式開發一週總結

Apr 18, 2017 am 10:50 AM

以下是微信小程式開發一週總結,希望對php中文網的同學有幫助。

編輯器

我直接用vscode(其它編輯器同理,預覽還是用的微信開發工具),語法高亮將wxml 設定成html, wxss 設定成css

"files.associations": {
  "*.wxss": "css",
  "*.wxml": "html"
}

# 也可以安裝小程式相關外掛程式

開始寫程式碼

  • ##首先需要完整看完微信小程式文件(

    框架

    ,元件和
  • API
),方便後面用到時尋找。

view 元件對應html 裡的p

text 對應span

微信小程式開發一週總結wxss 裡選擇器只支援element, #id, .className, ::after, ::before

  • #公用元件

    ##項目目錄裡新建components ,按類似pages
  • 目錄結構
  • ,將每個元件的模板,樣式和js 檔案放在同一個資料夾

    ##模板可以直接 或需要傳值的使用 + <template></template>

#樣式使用@import 導入

js 使用
    require
  • 引入到頁面,然後使用下面的mergePage 來載入到頁面

    物件

#mergePage

  • 元件的加載

const ErrorMsg = require('../../../components/error-msg/error-msg');
Page(util.mergePage({
  // 页面 Page 方法...
  onLoad() {
    // 可以直接在页面方法中调用 showErrorMsg 方法
  }
}, ErrorMsg/* 更多组件也可以*/));
 

使用mergePage 方法將所有元件方法及頁面
    事件
  • 註冊到頁面物件

元件的編寫方式

var errorTimer;

module.exports = {
  showErrorMsg(msg, cb) {
    clearTimeout(errorTimer);
    this.setData({
      errorMsg: msg
    });
    errorTimer = setTimeout( () => {
      this.setData({
        errorMsg: false
      });
      cb && cb();
    }, 2000);
  }
  // 可以在这里注册 `onLoad`,`onShow`等页面事件
}
 

元件裡使用可以this.setData 來更新頁面數據,或是註冊onLoad ,onShow 等頁面事件,mergePage 的最後一個參數的事件會先呼叫。

mergePage 的原始碼

/**
 * 合并 Page 对象所有的方法及事件
 * 子对象不能使用 data 属性,请在 onLoad 中使用 setData 方法设置
 */
function mergePage(dest, ...src) {
  let args = arguments;
  let eventsStack = {
    onLoad: [],
    onReady: [],
    onShow: [],
    onHide: [],
    onUnload: [],
    onPullDownRefresh: [],
    onReachBottom: [],
  };
  // 保存所有的事件,最后一个参数的事件会最先调用。
  for(let name in eventsStack) {
    for(let i = args.length - 1; i >= 0; i--) {
      args[i][name] && eventsStack[name].push(args[i][name])
    }
  }
  Object.assign(...args);
  for(let name in eventsStack) {
    dest[name] = function() {
      for(let i = 0; i  <p></p><h3 id="es-strong-a-href-http-www-php-cn-wiki-html-target-blank-a-strong-箭頭函數">es 6<strong><a href="http://www.php.cn/wiki/119.html" target="_blank"></a></strong>箭頭函數,</h3>函數參數<p>預設值及解析構</p><p></p><pre class="brush:php;toolbar:false">wx.request({
  complete: ({data= {}}) => {
    // 1. 因为 wx.request 返回的接口数据是在 data 属性里,这里我们只要 data 属性就行了,所以直接参数解析构
    // 2. 如果 failed,无 data 时,data 将为默认值 {}
    if(data.code !== 0) {
      // do something if request failed
      return;
    }
    // 请求正常处理代码
    // 3. 因为用的箭头函数,回调里可以正常使用 this, 访问 Page 对象的方法
    // 比如 this.setData(...)
  }
})
 

有些函數參數也可以直接使用預設參數。 拓展

運算子

和物件屬性簡寫在給template 傳data 參數時,可以使用物件屬性簡寫,如
<template></template>

 

這樣template 中可以使用

變數

為obj 物件的所有

key,以及id 和name

範本字串

  • 小程式裡可以直接方便的使用es 6 範本字串

    let url = `${app.globalData.API_PREFIX}/cart/add`;
     
  • 更多es 6 特性

  • 其它注意

wx.showToast 圖示只支援"success"、"loading",錯誤提示得自訂開發工具(v0.10.102800)可以用下面方法加入介面請求域名,遺憾的是微信裡不行。 #########
// 放到 app.js 前面
 wxConfig.projectConfig.Network.RequestDomain.push('https://weapp.juanpi.com');
### ############所有頁面的JS 會在啟動時立即執行,而不是開啟頁面才執行,所以有些寫在全域的程式碼應該盡量放到onLoad 之後,以下是從###調試### source 看到載入的程式碼:########
define("pages/index/index.js", function(require, module, exports, window,document,frames,self,location,navigator,localStorage,history,Caches,screen,alert,confirm,prompt,XMLHttpRequest,WebSocket ){ 'use strict';

var app = getApp();

var util = require('../../../utils/util');
var ErrorMsg = require('../../../components/error-msg/error-msg');
var AddressPicker = require('../../../components/address-picker/address-picker');

Page(util.mergePage({
  // 页面代码省略
}, AddressPicker, ErrorMsg));
//# sourceMappingURL=data:application/json;...
});require("pages/index/index.js")

以上是微信小程式開發一週總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!