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