微信小程序小結


1數據綁定 {{}} 

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

2條件語句 wx:if wx:elif wx:else 

   <view wx:if="{{length > 5}}"> 1 </view> <view wx:elif="{{length > 2}}"> 2 </view> <view wx:else> 3 </view> 

注意: <block/> 並不是一個組件,它僅僅是一個包裝元素,不會在頁面中做任何渲染,只接受控制屬 性。 

3、列表循環 wx:for ,默認數組的當前項的下標變量名默認為 index,數組當前項的變量名默認為 item ,wx:for 也可以嵌套 

<view wx:for="{{items}}"> {{index}}: {{item.message}} 

</view> 

使用 wx:for-item 可以指定數組當前元素的變量名,使用 wx:for-index 可以指定數組當前下標的變量名 

<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName"> {{idx}}: {{itemName.message}} 

</view> 

 

模板 WXML 提供模板(template),可以在模板中定義代碼片段,然后在不同
的地方調用。 模板在外部引用 import include 

<template name="msgItem"> <view> 

<text> {{index}}: {{msg}} </text> 

<text> Time: {{time}} </text> </view> 

</template> 

使用 is 屬性,聲明需要的使用的模板,然后將模板所需要的 data 傳入 

<template is="msgItem" data="{{...item}}"/> 

 

is 屬性可以使用 Mustache 語法,來動態決定具體需要渲染哪個模板 ,模板擁有自己的作用域,只能使用 data 傳入的數據 

<block wx:for="{{[1, 2, 3, 4, 5]}}">
<template is="{{item % 2 == 0 ? 'even' : 'odd'}}"/> 

</block> 


import 可以在該文件中使用目標文件定義的 template,如: 在 item.wxml 中定義了一個叫 item 的 template 

<!-- item.wxml -->

 <template name="item"> 

<text>{{text}}</text> 

</template> 

在 index.wxml 中引用了 item.wxml,就可以使用 item 模板 

<import src="item.wxml"/>
<template is="item" data="{{text: 'forbar'}}"/> 

注意C import B,B import A,在 C 中可以使用 B 定義的 template,在 B 中可以使用 A 定義的 template, 

但是 C 不能使用 A 定義的 template 

 

include 可以將目標文件除了<template/>的整個代碼引入,相當於是拷貝到 include 位置 

<!-- index.wxml -->
<include src="header.wxml"/>

 <view> body </view> 

<include src="footer.wxml"/> 

 

<!-- header.wxml -->

 <view> header </view> 

 

<!-- footer.wxml -->

 <view> footer </view> 

 

微信小程 pages 頁面啟動順序配置,排在第一位的是首頁

{
"pages":[ 

      "pages/news/news", 

      "pages/index/index", 

      "pages/logs/logs" 

] } 

utils 中自定義模塊 

微信小程序中中,utils 下面一個 JavaScript 文件中定義的變量、函數,都只在這個文件 內部有效。當需要從此 JS 文件外部引用這些變量、函數時,必須使用 exports 對象進行暴 露。使用者要用 require()命令引用這個 JS 文件 

//暴露給外部

module.exports = { 

     formatTime: formatTime 

}

//外部引用
var Api = require('../../utils/api.js'); 

 

如data里面寫了一些默認數據如果想更改需要使用以下方式

changeName: function(){

    this.setData({

        name:”這是setData里面改變后的name值”

    })

}

 

官方推薦使用標簽view和text代替傳統的div和p。使用傳統的無法使用id選擇器,以及微信會自動轉換成行內元素,需要自己加display:block轉換。

注意微信的使用單位是用rpx,建議用iphone6尺寸來開發。

rpx(responsive pixel): 可以根據屏幕寬度進行自適應。規定屏幕寬為 750rpx。如在 iPhone6 上,幕寬度為 375px,共有 750 個物理像素,則 750rpx = 375px = 750 物理像素,1rpx = 0.5px = 1 物理像素 

綁定圖片不能用img標簽,只能用image標簽

 

綁定事件在dom中用bindtap,function中可以用event接收當前點擊的對象。

如<view bindtap=“run” data-id=‘12345’ data-attr=‘attr1’>

在方法中接收額外參數

function run(event){

event.currentTarget.dataset

}

 

冒泡事件列表 

touchstart 手指觸摸 

touchmove 手指觸摸后移動 

touchcancel 手指觸摸動作被打斷,如來電提醒,彈窗

touchend 手指觸摸動作結束 

tap 手指觸摸后離開 

longtap 手指觸摸后,超過 350ms 再離開 

 

bind事件默認不會阻止事件冒泡,如需要阻止,可以用catch綁定事件上,如catchtap

 

注:除上表之外的其他組件自定義事件都是非冒泡事件, <form/> submit 事件,<input/> input 

事件, <scroll-view/> scroll 事件 

 

request 數據請求 

wx.request({
     url: 'http://www.phone.com/appapi.php?a=getPortalCate', 

     data: { 

id: '11' , name: '222' 

}, header: { 

'Content-Type': 'application/json' 

}, 

success: function(res){ 

    console.log(res.data.result) 

} }) 

 

request POST 數據提交 

wx.request({
     url: 'http://www.57lehuo.com/upload.php',          method:"POST",
data: { 

     username: '張三 1111' , 

     age: '222' 

}, 

header: {
'Content-Type': 'application/json' 

},
success: function(res) { 

     console.log(res.data) } 

}) 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM