以下是微信小程式開發一週總結,希望對php中文網的同學有幫助。
編輯器
我直接用vscode(其它編輯器同理,預覽還是用的微信開發工具),語法高亮將wxml 設定成html, wxss 設定成css
"files.associations": { "*.wxss": "css", "*.wxml": "html" }
# 也可以安裝小程式相關外掛程式
開始寫程式碼
),方便後面用到時尋找。wxss 裡選擇器只支援element, #id, .className, ::after, ::before
- #公用元件##項目目錄裡新建components ,按類似pages 目錄結構
- ,將每個元件的模板,樣式和js 檔案放在同一個資料夾##模板可以直接
或需要傳值的使用 + <template></template>
js 使用
- require
- 引入到頁面,然後使用下面的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 特性
其它注意
// 放到 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
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章
Windows 11 KB5054979中的新功能以及如何解決更新問題
4 週前ByDDD
如何修復KB5055523無法在Windows 11中安裝?
3 週前ByDDD
Inzoi:如何申請學校和大學
1 個月前ByDDD
如何修復KB5055518無法在Windows 10中安裝?
3 週前ByDDD
在哪裡可以找到Atomfall中的站點辦公室鑰匙
4 週前ByDDD

熱工具

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

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載
最受歡迎的的開源編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

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