備注
整理自己在小程序?qū)W習(xí)中用到的知識點(diǎn)以及官方文檔中常用的點(diǎn)困食。
小程序Demo
tabBar
<li>文件:app.json
<li>代碼:
"tabBar": {
"color": "#666",
"selectedColor": "#268dcd",
"boardStyle" : "white",
"backgroundColor": "#fafafa",
"list": [{
"pagePath": "pages/douban/coming_soon/coming_soon",
"iconPath": "image/coming",
"selectedIconPath": "image/coming-active",
"text": "即將上映"
},
{
"pagePath": "pages/douban/in_theathers/in_theathers",
"iconPath": "image/ing",
"selectedIconPath": "image/ing-active",
"text": "正在熱映"
}
]
}
<li>使用注意:
list中的pagePath边翁,需要在app.json中添加后才能生效。
"pages":[
"pages/douban/coming_soon/coming_soon",
"pages/douban/in_theathers/in_theathers"
],
Window
<li>配置位置:app.json
<li>用于設(shè)置小程序的狀態(tài)欄硕盹、導(dǎo)航條符匾、標(biāo)題、窗口背景色瘩例。
數(shù)據(jù)綁定
page中的data為頁面的初始數(shù)據(jù)啊胶,初始化數(shù)據(jù)將作為頁面的第一次渲染芒澜。data 將會以 JSON 的形式由邏輯層傳至渲染層,所以其數(shù)據(jù)必須是可以轉(zhuǎn)成 JSON 的格式:字符串创淡,數(shù)字痴晦,布爾值,對象琳彩,數(shù)組誊酌。
渲染層可以通過WXML對數(shù)據(jù)進(jìn)行綁定。格式:{{變量名}}露乏,為Mustache語法碧浊。
// wxml文件中
<view>{{text}}</view>
// js文件中
Page({
data:{
text: 'hello world'
}
})
以上頁面的view標(biāo)簽內(nèi)便會顯示hello world
條件渲染
<li>wx:if
在框架中,我們用 wx:if="{{condition}}"瘟仿,來判斷是否需要渲染該代碼塊箱锐。
<li>block
因?yàn)?wx:if 是一個控制屬性,需要將它添加到一個標(biāo)簽上劳较。但是如果我們想一次性判斷多個組件標(biāo)簽驹止,我們可以使用一個 <block/> 標(biāo)簽將多個組件包裝起來,并在上邊使用 wx:if 控制屬性观蜗。
setData
setData函數(shù)用于將數(shù)據(jù)從邏輯層發(fā)送到視圖層臊恋,同時改變對應(yīng)的 this.data
的值。
注意:
直接修改 this.data 無效墓捻,無法改變頁面的狀態(tài)抖仅,還會造成數(shù)據(jù)不一致。
單次設(shè)置的數(shù)據(jù)不能超過1024kB砖第,請盡量避免一次設(shè)置過多的數(shù)據(jù)
Page({
data:{
text: 'hello world'
textText: "asdasd"
},
viewTap:function() {
this.setData({
text: 'world Hello'
})
}
})
調(diào)用viewTap的時候撤卢,則可以刷新頁面上引用該值的區(qū)域,同時給text賦值梧兼。
綁定點(diǎn)擊事件
js中自定義點(diǎn)擊函數(shù)
viewTap:function() {
console.log("點(diǎn)擊了view")
}
wxml中綁定點(diǎn)擊事件
<text bindtap="viewTap">點(diǎn)我</text>
JS中的打印
<li>直接打臃欧浴:
console.log("Hello World")
<li>格式化打印:使用%來定義拼接類型袱院,與c語言一致
var people = "Alex"
console.log("Hello %s", people)
<li>拼接:
var name = "Bob";
console.log("The name is: " + name);
<li>打印對象:
var people = {
name: "Jack",
age: 18
}
console.log("Jack:", people)
模塊化
我們可以將一些公共的代碼抽離成為一個單獨(dú)的 js 文件屎慢,作為一個模塊。模塊只有通過 module.exports或者 exports才能對外暴露接口忽洛。
例:
module.exports = {
someFunction:function() {
console.log("打印了")
}
}
調(diào)用
var functions = require('../functions.js')
functions.someFunction()