微信小程序注冊(cè)和基本認(rèn)識(shí)

微信小程序

一窟社、創(chuàng)建項(xiàng)目

1筛圆、準(zhǔn)備工作

微信公眾平臺(tái)注冊(cè)開發(fā)者賬號(hào):https://mp.weixin.qq.com/

下載小程序開發(fā)工具:

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

2窃判、認(rèn)識(shí)項(xiàng)目目錄

1.pages目錄:用于存放所有的頁(yè)面警没。

2.utils目錄:用于存放工具類文件。

3.app.js:是入口文件部翘,程序在運(yùn)行時(shí)搂根,首先要執(zhí)行該文件珍促。

4.app.json:是全局配置文件,用于配置小程序的信息(它里面配置的是全局信息)剩愧。

5.app.wxss:是全局樣式文件猪叙。全局樣式文件里面定義的選擇器,在所有的頁(yè)面中生效仁卷。

6.project.config.json:是項(xiàng)目配置文件穴翩。

7.sitemap.json:是SEO配置文件,方便用戶搜索到該小程序锦积。

(1)pages配置項(xiàng)

pages里面注冊(cè)的是視圖芒帕。用于指定小程序由哪些頁(yè)面組成,每一項(xiàng)都對(duì)應(yīng)一個(gè)頁(yè)面的路徑(含文件名)信息丰介。

??"pages":[

????"pages/index/index"

??]

(創(chuàng)造包含.js .json .wxml .wxss后綴的文件的同名文件夾

(2)window配置項(xiàng)

window 是全局窗口配置背蟆。

1.backgroundTextStyle 設(shè)置文本樣式(下拉loading的樣式),僅支持 dark / light哮幢。

2.navigationBarBackgroundColor 設(shè)置導(dǎo)航欄背景带膀。

3.navigationBarTitleText 設(shè)置導(dǎo)航欄文本。

4.navigationBarTextStyle 設(shè)置導(dǎo)航欄標(biāo)題顏色橙垢,僅支持 black / white垛叨。

寫法:

"window":{

????"backgroundTextStyle":"light",

????"navigationBarBackgroundColor":?"#369",

????"navigationBarTitleText":?"KW43-APP",

????"navigationBarTextStyle":"white"

??}

(3)style

style 設(shè)置樣式級(jí)別,默認(rèn)是v2柜某。

"style":?"v2"

(4)sitemapLocation

sitemapLocation 指明sitemap.json 的位置嗽元;默認(rèn)為 'sitemap.json' 即在 app.json 同級(jí)目錄下名字的 sitemap.json 文件敛纲。

??"sitemapLocation":?"sitemap.json"

3、頁(yè)面組成

每一個(gè)頁(yè)面由四個(gè)文件組成:xxx.wxml文件还棱、xxx.wxss文件载慈、 xxx.js文件和xxx.json文件惭等。

(1)xxx.wxml文件

xxx.wxml文件珍手,就相當(dāng)于一個(gè)html文件。在wxml文件中辞做,不能寫傳統(tǒng)的html標(biāo)簽琳要,只能寫微信提供的組件。

① view組件

相當(dāng)于div標(biāo)簽秤茅。

② text組件

相當(dāng)于span標(biāo)簽稚补。

③ swiper

swiper是滑塊視圖容器,它里面只能放swiper-item組件框喳。

swiper組件的常用屬性:

circular是銜接滑動(dòng)

autoplay是自動(dòng)切換

interval是自動(dòng)切換時(shí)間間隔

indicator-dots是否顯示面板指示點(diǎn)

indicator-color指示點(diǎn)顏色

indicator-active-color當(dāng)前選中的指示點(diǎn)顏色

<swiper?class="swiper"?circular?autoplay?interval="3000"?indicator-dots?indicator-color='#eee'?indicator-active-color='#369'>

</swiper>

④ image

image是圖片組件课幕,最好全部采用網(wǎng)絡(luò)圖片,因?yàn)樾〕绦虻目傮w積不允許超過(guò)2MB五垮。

(2)xxx.wxss文件

xxx.wxss文件乍惊,就相當(dāng)于一個(gè)css文件。在wxss文件中放仗,最好不要寫標(biāo)簽選擇器和id選擇器润绎,統(tǒng)一寫類選擇器。

為了讓小程序里面的內(nèi)容在各種設(shè)備上能夠自適應(yīng)顯示诞挨,微信推出了響應(yīng)式單位:rpx莉撇。在iphone6中,2rpx=1px惶傻。

width:?60rpx;?????/*?相當(dāng)于width:?30px;?*/

(3)xxx.js文件

xxx.js文件棍郎,是交互文件(核心文件)。

Page()函數(shù)银室,返回頁(yè)面對(duì)象坝撑,該函數(shù)需要傳一個(gè)配置參數(shù),這個(gè)配置參數(shù)是一個(gè)對(duì)象粮揉。在這個(gè)配置對(duì)象中巡李,定義當(dāng)前頁(yè)面的所有內(nèi)容。

① data

定義頁(yè)面的數(shù)據(jù)扶认。

Page({

data:?{

?????name:?"熱門歌曲",

?????songs:?[{id:?1001},?{id:?1002}]

??}

})

② 自定義函數(shù)

開發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到Object 參數(shù)中侨拦,在頁(yè)面的函數(shù)中用this可以訪問。

Page({

????//?定義函數(shù)

????delSong()?{

????????this.data.songs.splice(0,?1)

????????this.setData({

????????????songs:?this.data.songs

????????})

????}

})

(4)xxx.json文件

xxx.json文件辐宾,是頁(yè)面的配置文件(它里面配置的是當(dāng)前頁(yè)面信息)狱从。

5膨蛮、插值表達(dá)式 {{}}

WXML 中的動(dòng)態(tài)數(shù)據(jù)均來(lái)自對(duì)應(yīng) Page 的 data。

(1)獲取data中數(shù)據(jù)

通過(guò)插值表達(dá)式{{}}季研,可以顯示js里面定義的data里面的數(shù)據(jù)敞葛。

<text>歌曲分類:{{name}}</text>

(2)組件屬性(需要在雙引號(hào)之內(nèi))

??<view?id="item-{{id}}">?</view>

(3)運(yùn)算

可以在{{}} 內(nèi)進(jìn)行簡(jiǎn)單的運(yùn)算。

① 三元運(yùn)算

<view?class="item?{{index%2===0???'bg'?:?''}}">?</view>

② 邏輯判斷

??<view?wx:if="{{length?>?5}}">?</view>

6与涡、bindtap

bindtap是觸屏事件惹谐,其實(shí)就是相當(dāng)于網(wǎng)頁(yè)中的點(diǎn)擊事件。

<view?class="btn"?bindtap="delSong">刪除</view>

7驼卖、data-xxx 自定義屬性

小程序中bindtap綁定方法時(shí)不能傳參數(shù)氨肌。所以組件通過(guò)data-xxx傳遞數(shù)據(jù)。

<view?class="btn"?data-index="{{index}}"?bindtap="del1">刪除</view>

注意:自定義屬性的命名用駝峰或者大寫命名酌畜,小程序內(nèi)部會(huì)自動(dòng)轉(zhuǎn)成小寫怎囚。

del(e){

????//解構(gòu)出自定義的index屬性

????let?{currentTarget:{dataset:{index}}}?=?e

?}

8、setData()方法

setData()方法桥胞,更新頁(yè)面中數(shù)據(jù)恳守。頁(yè)面數(shù)據(jù)更新后,調(diào)用setData()方法重新渲染到頁(yè)面贩虾。

???this.setData({

??????typeId:typeid,

??????name:typename

????})

[if !supportLists]二催烘、[endif]列表渲染

1、wx:for

wx:for指令用于循環(huán)數(shù)組數(shù)據(jù)整胃,生成組件颗圣。

循環(huán)出來(lái)的每一項(xiàng)通過(guò)item返回,每一項(xiàng)對(duì)應(yīng)的索引屁使,通過(guò)index返回在岂。

????<view?wx:for="{{songs}}"?wx:key="index"?class="items">

???????<text>{{index}}--{{item.id}}--{{item.name}}</text>

????</view>

2、wx:key

wx:key=""蛮寂,設(shè)置每一項(xiàng)唯一的標(biāo)識(shí)蔽午。循環(huán)列表時(shí),添加wx:key的好處是酬蹋,將來(lái)列表發(fā)生變化時(shí)重新渲染列表的損耗為更低及老。

三、條件渲染

條件渲染可以使用wx:if或hidden范抓。

一般來(lái)說(shuō)骄恶,wx:if 有更高的切換消耗而 hidden 有更高的初始渲染消耗。因此匕垫,如果需要頻繁切換的情景下僧鲁,用 hidden 更好,如果在運(yùn)行時(shí)條件不大可能改變則 wx:if 較好。

1寞秃、wx:if

wx:if用于條件渲染:條件為真生成里面的內(nèi)容斟叼,條件為假不會(huì)生成里面的內(nèi)容。(每次重新生成內(nèi)容)

也可以用wx:elif 和 wx:else 來(lái)添加一個(gè) else 塊春寿。

??<view?wx:if="{{typeID?==?1}}">?1?</view>

??<view?wx:elif="{{typeID?==?2}}">?2?</view>

??<view?wx:else>?3?</view>

2朗涩、hidden

hidden用于條件渲染:條件為真隱藏里面的內(nèi)容,條件為假顯示里面的內(nèi)容绑改。(每次切換樣式)

??<view?hidden="{{typeID!=?2}}">?1?</view>

四谢床、tabBar&頁(yè)面跳轉(zhuǎn)

1、tabBar

在app.json文件中添加tabBar節(jié)點(diǎn)绢淀。tabBar是小程序客戶端底部或頂部tab欄的實(shí)現(xiàn)萤悴。

(1)tabBar相關(guān)屬性

color:tab上的文字默認(rèn)顏色瘾腰,僅支持十六進(jìn)制顏色皆的。

selectedColor:tab上的文字選中時(shí)的顏色,僅支持十六進(jìn)制顏色蹋盆。

backgroundColor:tab的背景色费薄,僅支持十六進(jìn)制顏色。

borderStyle:tabbar上邊框的顏色栖雾, 僅支持 black / white楞抡。

position:tabBar的位置,默認(rèn)值是: bottom析藕,僅支持 bottom / top召廷。當(dāng) position 為 top 時(shí),不顯示 icon账胧。

custom:自定義tabBar竞慢。

"tabBar":?{

????"color":?"#000000",

????"selectedColor":?"#336699",

????"backgroundColor":?"#ffffff",

????"borderStyle":?"black",

????"position":?"bottom"

??}

(2)list

list:tab的列表。

list 接受一個(gè)數(shù)組治泥,只能配置最少 2 個(gè)筹煮、最多 5 個(gè) tab。

pagePath:頁(yè)面路徑居夹,必須在pages 中先定義败潦。

text:tab 上按鈕文字。

iconPath:圖片路徑准脂,icon 大小限制為 40kb劫扒,建議尺寸為 81px * 81px,不支持網(wǎng)絡(luò)圖片狸膏。selectedIconPath:選中時(shí)的圖片路徑沟饥,icon 大小限制為 40kb,建議尺寸為 81px * 81px,不支持網(wǎng)絡(luò)圖片闷板。

????"list":?[

??????{

????????"text":?"首頁(yè)",

????????"pagePath":?"pages/index/index",

????????"iconPath":?"assets/icon/home.png",

????????"selectedIconPath":?"assets/icon/home2.png"

??????},

??????{

????????"text":?"列表",

????????"pagePath":?"pages/list/list",

????????"iconPath":?"assets/icon/list.png",

????????"selectedIconPath":?"assets/icon/list2.png"

??????}

]

2澎灸、頁(yè)面跳轉(zhuǎn)

(1)跳轉(zhuǎn)普通頁(yè)面

方法① navigator組件

?<!--?跳轉(zhuǎn)到普通頁(yè),可以通過(guò)返回按鈕返回?-->

?<navigator?url="../detail/detail">到詳情頁(yè)</navigator>

方法② navigateTo()方法

navigateTo()方法遮晚,用于跳轉(zhuǎn)普通頁(yè)面性昭。

<view?bindtap="gotoDetail">到詳情頁(yè)</view>

gotoDetail(){

????//使用全局api跳轉(zhuǎn),navigateTo()方法县遣,用于跳轉(zhuǎn)普通頁(yè)面

????wx.navigateTo({

??????url:?'../detail/detail',

????})

???}

(2)跳轉(zhuǎn)tabBar頁(yè)面

方法① navigator組件

如果要使用navigator組件跳轉(zhuǎn)tabBar頁(yè)面糜颠,需要設(shè)置open-type="switchTab"。

?<!--?跳轉(zhuǎn)到tabBar頁(yè)面萧求,不可以通過(guò)返回按鈕返回其兴。因?yàn)樘D(zhuǎn)到指定的tabBar頁(yè)面后,會(huì)關(guān)閉其他所有頁(yè)面?-->

<navigator?url="../list/list"?open-type="switchTab">到列表頁(yè)</navigator>??????????????????????????????????????????????????????????????????????????????????????

方法② switchTab()方法

switchTab()方法夸政,用于跳轉(zhuǎn)tabBar頁(yè)面元旬。

??<view?bindtap="gotoList">到列表頁(yè)</view>

??gotoList(){

????wx.switchTab({

??????url:?'../list/list',

????})

??}

五、確認(rèn)框和消息框

1守问、wx.showModal() 確認(rèn)框

title:提示的標(biāo)題

content:提示的內(nèi)容

success:接口調(diào)用成功的回調(diào)函數(shù)匀归。回調(diào)函數(shù)中的confirm屬性返回true耗帕,表示點(diǎn)擊的是確定按鈕穆端,否則是取消按鈕。

?wx.showModal({

??????content:'是否確定刪除',

??????success:({confirm})=>{

????????//confirm返回true仿便,表示點(diǎn)擊的是確定按鈕体啰,否則是取消按鈕

????????if(confirm){

??????}

????})?

2、wx.showToast() 顯示消息提示框

title:提示的內(nèi)容

icon:圖標(biāo)

duration:消息提示框的顯示時(shí)間

mask:是否顯示透明蒙層嗽仪,防止觸摸穿透

六荒勇、封裝方法

模塊化語(yǔ)法有兩種:① commonjs規(guī)范,② es6規(guī)范钦幔。

nodejs環(huán)境采用的就是commonjs規(guī)范枕屉。采用exports 或 module.exports 導(dǎo)出成員,采用require() 導(dǎo)入成員鲤氢。

微信小程序支持commonjs規(guī)范搀擂,同時(shí)還支持官方的ES6規(guī)范。ES6規(guī)范采用export 導(dǎo)出成員卷玉,采用import 導(dǎo)入成員哨颂。

[if !supportLists]1、[endif]封裝方法并導(dǎo)出

將封裝的方法放到util目錄下的js文件中相种⊥眨可以新建js文件,也可以寫在直接util.js文件中。

(1)確認(rèn)框方法

//?定義確認(rèn)框方法箫措,并導(dǎo)出

export?let?$confirm?=?(content)=>{

??return?new?Promise((resolve)=>{

????wx.showModal({

??????content,

??????success:({confirm})=>{

????????if(confirm){

??????????resolve()

????????}

??????}

????})

??})

}

(2)消息框方法

//?定義消息框方法腹备,并導(dǎo)出

export?let?$msg?=?(title,icon='success',duration=1500)=>{

??wx.showToast({

????title,

????icon,

????duration,

????mask:true

??})

}

(3)獲取事件參數(shù)的方法

export?let?$key?=?(e)=>{

??return?e.currentTarget.dataset

}


[if !supportLists]2、[endif]導(dǎo)入方法

import是ES6的導(dǎo)入語(yǔ)句斤蔓。


//?導(dǎo)入msg模塊中的指定成員

import?{$msg,$confirm}?from?'../../utils/msg'


[if !supportLists]3植酥、[endif]將方法注冊(cè)給全局對(duì)象wx

wx對(duì)象是微信小程序的全局對(duì)象,在任何地方都可以使用弦牡。

[if !supportLists](1)[endif]注冊(cè)語(yǔ)句

wx.$msg?=?$msg

wx.$confirm?=?$confirm

[if !supportLists](2)[endif]在app.js入口文件中導(dǎo)入

注意:注冊(cè)給wx對(duì)象的方法友驮,需要在app.js文件中導(dǎo)入,才可使用驾锰。

//?導(dǎo)入初始化文件

import?'./utils/index'

[if !supportLists](3)[endif]調(diào)用方法

wx.方法名(參數(shù))

wx.$msg('刪除成功')

[if !supportLists]七卸留、[endif]scroll-view

可滾動(dòng)視圖區(qū)域。使用豎向滾動(dòng)時(shí)椭豫,需要給scroll-view一個(gè)固定高度耻瑟,通過(guò) WXSS 設(shè)置 height。組件屬性的長(zhǎng)度單位默認(rèn)為px捻悯,2.4.0起支持傳入單位(rpx/px)匆赃。

scroll-x:允許橫向滾動(dòng)淤毛。

scroll-y:允許縱向滾動(dòng)今缚。

?<scroll-view?class="left"?scroll-y>??</scroll-view>


[if !supportLists]八、[endif]wx對(duì)象發(fā)送ajax請(qǐng)求

[if !supportLists]1低淡、[endif]wx.request() 發(fā)送請(qǐng)求

注意:小程序?qū)嶋H使用中姓言,請(qǐng)求的接口必須都是已經(jīng)配置過(guò)的接口。開發(fā)階段蔗蹋,可以直接設(shè)置“不校驗(yàn)合法域名”何荚,暫不配置。

?wx.request({

??????//?請(qǐng)求接口地址

??????url: 'https://www.bingjs.com:8002/Section/GetSections',

??????//?請(qǐng)求參數(shù)

??????data:{},

??????//?請(qǐng)求方式GET/POST

??????method:"GET",

??????//?請(qǐng)求成功后的回調(diào)

??????success:({data})=>{

????????resolve(data)

??????},

??????//?請(qǐng)求完成后的回調(diào)

??????complete:()=>{

?????????console.log('請(qǐng)求完成');

??????}

????})

[if !supportLists]2猪杭、[endif]封裝ajax請(qǐng)求方法

(1)定義請(qǐng)求方法

export?let?$request?=?(url,data={},method='GET')=>{

??return?new?Promise((resolve)=>{

????wx.request({

??????url,

??????data,

??????method,

??????success:({data})=>{

????????resolve(data)

??????},

????})

??})

}

(2)定義get請(qǐng)求方法

export?let?$get?=?(url,data={})=>{

??return?$request(url,data,'GET')

}

(3)定義post請(qǐng)求方法

export?let?$post?=?(url,data={})=>{

??return?$request(url,data,'POST')

}

[if !supportLists]九餐塘、[endif]格式化時(shí)間

[if !supportLists]1、[endif]在后臺(tái)對(duì)數(shù)據(jù)里的時(shí)間戳進(jìn)行處理

let?data=?await?wx.$get('Subject/GetSubjects',{section_id:id})

data?=?data.map(r=>{

?return?{

??Title:?r.Title,

??Section:?r.Section,

Createtime:?wx.$formatTime(new?Date(parseInt(r.Createtime)))

}

})

[if !supportLists]2皂吮、[endif]WXS

WXS(WeiXin Script)是小程序的一套腳本語(yǔ)言戒傻,結(jié)合 WXML,可以構(gòu)建出頁(yè)面的結(jié)構(gòu)蜂筹。

在wxml頁(yè)面中需纳,只能在插值{{ }}中寫簡(jiǎn)單的js表達(dá)式,而不能調(diào)用方法艺挪。wxs就是為了能在頁(yè)面中使用js而存在的不翩。

[if !supportLists](1)[endif]語(yǔ)法

① 變量必須使用var聲明,不支持const或者let。

② 不支持箭頭函數(shù)口蝠。

③ 不可以使用模板字符串器钟,字符串連接用+ 。

④ 每一個(gè) .wxs 文件和 <wxs> 標(biāo)簽都是一個(gè)單獨(dú)的模塊妙蔗。每個(gè)模塊都有自己獨(dú)立的作用域俱箱。

通過(guò)module.exports導(dǎo)出內(nèi)部的私有變量與函數(shù)。

⑤ <wxs> 標(biāo)簽中灭必,module屬性值定義標(biāo)簽的模塊名狞谱;src屬性值引入.wxs文件的相對(duì)路徑。

⑥ 生成date對(duì)象使用 getDate()禁漓,返回一個(gè)當(dāng)前時(shí)間的對(duì)象跟衅。不使用new Date()。

(2)編寫在wxml文件中的 標(biāo)簽內(nèi)

<wxs?module="tools">

?var?formatTime?=?function(date)?{

????date?=?getDate(parseInt(date))

????var?year?=?date.getFullYear()

????var?month?=?date.getMonth()?+?1

????var?day?=?date.getDate()

????var?hour?=?date.getHours()

????var?minute?=?date.getMinutes()

????var?second?=?date.getSeconds()

????return?[year,?month,?day].map(formatNumber).join('/')?+?'?'?+?[hour,?minute,?second].map(formatNumber).join(':')

}

var?formatNumber?=function(n)?{

???n?=?n.toString()

???return?n[1]???n?:?'0'?+?n

}

module.exports?=?{

???formatTime:formatTime??

}

</wxs>?

<!--?在模板中播歼,對(duì)時(shí)間數(shù)據(jù)進(jìn)行處理?-->

<view>{{tools.formatTime(item.Createtime)}}</view>

(3)編寫在wxs文件中伶跷,再導(dǎo)入wxml文件

<!--?導(dǎo)入wxs文件?-->

<wxs?module="tools"?src="../../wxs/filter.wxs"></wxs>

<!--?在模板中,對(duì)時(shí)間數(shù)據(jù)進(jìn)行處理?-->

<view>{{tools.formatTime(item.Createtime)}}</view>


十秘狞、生命周期函數(shù)

1叭莫、onLoad 監(jiān)聽頁(yè)面加載

onLoad函數(shù)對(duì)頁(yè)面狀態(tài)數(shù)據(jù)的初始化,是生命周期回調(diào)—監(jiān)聽頁(yè)面加載烁试。一 個(gè)頁(yè)面只會(huì)調(diào)用一次雇初。onLoad函數(shù)的參數(shù)可以接收打開當(dāng)前頁(yè)面所調(diào)用的 query參數(shù)。


當(dāng)前頁(yè)面跳轉(zhuǎn)detail頁(yè)面后减响,調(diào)用query參數(shù)id靖诗。

<navigator?url="../detail/detail?id={{item.Id}}"?class="item"?wx:for="{{subjects}}"?wx:key="index">

</navigator>

detail頁(yè)面中onLoad函數(shù)可以獲取傳遞的query參數(shù)id。

??onLoad:?function?(options)?{

????//獲取題目的id

????let?{id}?=?options

??}


2支示、onReachBottom 上拉觸底

????onReachBottom:function(){

????????this.data.pageIndex++

????????this.getSubjects()

????}

[if !supportLists]3刊橘、[endif]onPullDownRefresh 下拉刷新

下拉刷新默認(rèn)是關(guān)閉狀態(tài),所以需要先在.json文件中設(shè)置允許下拉刷新颂鸿。

enablePullDownRefresh設(shè)置是否開啟當(dāng)前頁(yè)面下拉刷新促绵。

backgroundColor設(shè)置窗口的背景色。

{

??"enablePullDownRefresh":?true,

??"backgroundColor":?"#d1c2d3"

}


下拉刷新動(dòng)效有默認(rèn)時(shí)間嘴纺。如果想改變默認(rèn)的下拉時(shí)間败晴,可以用定時(shí)器。

wx.stopPullDownRefresh()設(shè)置刷新完成后停止下拉刷新動(dòng)效颖医。

????onPullDownRefresh:function(){

???????setTimeout(()?=>?{

???????????wx.stopPullDownRefresh()

???????},?1000);

????}

十一位衩、簡(jiǎn)易雙向綁定

1、普通屬性綁定

在WXML 中熔萧,普通的屬性的綁定是單向的糖驴。如果用戶修改了輸入框里的值僚祷,不會(huì)同時(shí)改變 this.data.value。

????<input?class="txt"?value="{{title}}"?/>

2贮缕、簡(jiǎn)易雙向綁定

如果需要在用戶輸入的同時(shí)改變this.data.value 辙谜,需要借助簡(jiǎn)易雙向綁定機(jī)制。

通過(guò)model:value的方式感昼,將表單里面的數(shù)據(jù)跟js里面的數(shù)據(jù)進(jìn)行了雙向綁定装哆。

雙向綁定指的是:一處被修改,另一處也一起修改定嗓。

???<input?class="txt"?model:value="{{value}}"?/>


3蜕琴、雙向綁定的表達(dá)式限制

只能是一個(gè)單一字段的綁定;目前宵溅,尚不能data 路徑凌简。

以下寫法都是錯(cuò)誤的:

???<input?model:value="值為{{value}}"?/>

???<input?model:value="{{?a?+?b?}}"?/>

???<input?model:value="{{?a.b?}}"?/>

十二、表單組件

1恃逻、picker 選擇器組件

range:指定一個(gè)數(shù)組(指定一份展示的數(shù)據(jù))雏搂。

range-key:如果range數(shù)組是一個(gè)對(duì)象數(shù)組,需要添加range-key屬性寇损,指定選擇器中顯示的內(nèi)容(從對(duì)象身上指定一個(gè)屬性)凸郑。

bindchange:value 改變時(shí)觸發(fā) change 事件,event.detail = {value}矛市。

<picker?class="txt"?bindchange="bindPickerChange"?range-key="Name"?range="{{sections}}">

?????<view>

????????<!--?根據(jù)選擇器選中的索引芙沥,顯示對(duì)應(yīng)的名稱?-->

????????{{sections[sectionsActiveIndex].Name}}

?????</view>

??</picker>

通過(guò)e.detail.value獲取當(dāng)前列表value的索引。

???bindPickerChange:?function(e)?{

console.log(e.detail.value) ?//獲取下標(biāo)

???}

2尘盼、input 輸入框

placeholder:輸入框?yàn)榭諘r(shí)占位符憨愉。

<input?value=""?placeholder="請(qǐng)輸入搜索關(guān)鍵字"?/>

3、textarea 多行文本框

maxlength:最大輸入長(zhǎng)度卿捎。設(shè)置為 -1 的時(shí)候不限制最大長(zhǎng)度。

<textarea?maxlength="-1"?value=""?/>


[if !supportLists]六径密、[endif]js數(shù)據(jù)更新方法

(1)直接賦值

該方法只更新js中的數(shù)據(jù)午阵,不會(huì)重新渲染到頁(yè)面。

???this.data.section_id?=?this.data.sections[index].Id

(2)setData()方法

該方法更新數(shù)據(jù)后享扔,重新渲染頁(yè)面底桂。

???this.setData({

???????activeIndex:?index

???})

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市惧眠,隨后出現(xiàn)的幾起案子籽懦,更是在濱河造成了極大的恐慌,老刑警劉巖氛魁,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暮顺,死亡現(xiàn)場(chǎng)離奇詭異厅篓,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)捶码,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門羽氮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人惫恼,你說(shuō)我怎么就攤上這事档押。” “怎么了祈纯?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵令宿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我腕窥,道長(zhǎng)掀淘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任油昂,我火速辦了婚禮革娄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冕碟。我一直安慰自己拦惋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布安寺。 她就那樣靜靜地躺著厕妖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挑庶。 梳的紋絲不亂的頭發(fā)上言秸,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音迎捺,去河邊找鬼举畸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛凳枝,可吹牛的內(nèi)容都是我干的抄沮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岖瑰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叛买!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蹋订,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤率挣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后露戒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椒功,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捶箱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛾茉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讼呢。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谦炬,靈堂內(nèi)的尸體忽然破棺而出悦屏,到底是詐尸還是另有隱情,我是刑警寧澤键思,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布础爬,位于F島的核電站,受9級(jí)特大地震影響吼鳞,放射性物質(zhì)發(fā)生泄漏看蚜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一赔桌、第九天 我趴在偏房一處隱蔽的房頂上張望供炎。 院中可真熱鬧,春花似錦疾党、人聲如沸音诫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)竭钝。三九已至,卻和暖如春雹洗,著一層夾襖步出監(jiān)牢的瞬間香罐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工时肿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留庇茫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓嗜侮,卻偏偏與公主長(zhǎng)得像港令,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锈颗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容