由于前段時間比較忙,已經有半個多月沒有更新文章了。最近微信小程序頻繁更新,越來越開放,所以今天我們將繼續探討小程序。
在微信小程序開發之路(一)中講到微信小程序的單向綁定以及使用setData()方法來更新View,這對于新手也算是個“坑”了,很容易出錯。下面將繼續分享我在開發小程序過程中所遇到的“坑”。
一、onLaunch方法只能在app.js中的App()中定義
這個其實熟悉文檔的話就很好理解了,onLaunch方法只在小程序初始化完成時觸發,全局只觸發一次,所以在頁面的Page()中寫這玩意兒是無效的,當然也不會報錯,這才導致新手容易犯錯。
二、局部js文件若要調用app.js中的方法或獲取其中的數據,可通過getApp()的方式來獲取
首先需要強調的是,app.js雖然說可以定義全局方法或數據,但是在局部js文件中卻無法直接調用。其次還需注意的是,在app.js中的全局方法必須要在App()中定義,否則無法在局部調用。簡單舉個栗子吧~~~
//app.js
App({
b(){
console.log("b");
},
globalData:{
ccc: 'ccc'
}
})
function a(){
console.log('a');
}
//pages/test/test.js
var app = getApp();
Page({
data:{},
onLoad:function(options){
// a(); // 報錯
// app.a(); // 報錯
app.b(); // b
console.log(app.globalData.ccc); // ccc
}
})
其實這樣也不難理解,我們通過getApp方法可以直接獲取小程序實例,然后就能很開心的調用和獲取App()中定義的方法和數據咯~~
三、若項目中需要使用登錄接口wx.login(),在使用微信開發工具建項目時須填入AppID
四、支持JSON.stringigy()和JSON.parse()這兩個方法,但需要注意的是,使用JSON.parse()時傳入的參數必須是標準的JSON格式的字符串
剛開始以為小程序不支持JSON.parse()方法,因為在實際用的時候報錯了,后來才發現原來是自己JS技術不過關。在使用該方法時,要特別注意傳入的參數格式,舉個例子:
// pages/test/test.js
var app = getApp();
Page({
data:{},
onLoad:function(options){
console.log(JSON.stringify({aaa: 111})); // 這個方法倒是可以傳入普通的JS對象字面量,返回{"aaa":111},這是個字符串
console.log(JSON.parse('{"aaa": 111}')); // 標準的JSON格式的字符串,返回{aaa: 111},這是個對象
// console.log(JSON.parse("{'aaa': 111}")); // 報錯
// console.log(JSON.parse("{aaa: 111}")); // 報錯
}
})
其實就是考驗對這兩個JS方法的掌握,跟小程序沒啥關系,對這兩個方法特別熟悉的可以直接跳過。
結束語:其實不管學什么,都不能僅僅只停留在理論,否則理論再好你也不一定掌握,學習的精髓其實在于多看、多練和多寫。比如你看完本文,或許你覺得某個地方可能不太正確,這時候你就可以自己寫個Demo試一試,最后你可能覺得這個知識點很好可又擔心記不住,這時候你就應該把它寫下來。今天就先分享到這里,后續會繼續分享更多關于小程序的干貨哦~~