# [WXML](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxs/) 語法
WXML(WeiXin Markup Language)是框架設計的一套標簽語言,結合[基礎組件](https://mp.weixin.qq.com/debug/wxadoc/dev/component/)、[事件系統](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html),可以構建出頁面的結構。
### [數據綁定](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/data.html)
使用 `{{}}` 語法綁定數據。
```html
<!--wxml-->
<view> {{message}} </view>
```
```js
// page.js
Page({
data: {
message: 'Hello MINA!'
}
})
```
# [WXS](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxs/) 語法
WXS(WeiXin Script)是小程序的一套腳本語言,結合 `WXML`,可以構建出頁面的結構。
### 注意
1. wxs 不依賴于運行時的基礎庫版本,可以在所有版本的小程序中運行。
2. wxs 與 javascript 是不同的語言,有自己的語法,并不和 javascript 一致。
3. wxs 的運行環境和其他 javascript 代碼是隔離的,wxs 中不能調用其他 javascript 文件中定義的函數,也不能調用小程序提供的API。
4. wxs 函數不能作為組件的事件回調。
5. 由于運行環境的差異,在 iOS 設備上小程序內的 wxs 會比 javascript 代碼快 2 ~ 20 倍。在 android 設備上二者運行效率無差異。
以下是一些使用 WXS 的簡單示例:
### 頁面渲染
```
<!--wxml-->
<wxs module="m1">
var msg = "hello world";
module.exports.message = msg;
</wxs>
<view> {{m1.message}} </view>
```
頁面輸出:
```
hello world
```
### 數據處理
```
// page.js
Page({
data: {
array: [1, 2, 3, 4, 5, 1, 2, 3, 4]
}
})
```
```
<!--wxml-->
<!-- 下面的 getMax 函數,接受一個數組,且返回數組中最大的元素的值 -->
<wxs module="m1">
var getMax = function(array) {
var max = undefined;
for (var i = 0; i < array.length; ++i) {
max = max === undefined ?
array[i] :
(max >= array[i] ? max : array[i]);
}
return max;
};
module.exports.getMax = getMax;
</wxs>
<!-- 調用 wxs 里面的 getMax 函數,參數為 page.js 里面的 array -->
<view> {{m1.getMax(array)}} </view>
```
頁面輸出:
```
5
```
- 簡介
- 第一章 公眾號開發
- 使用微信JSSDK
- 接口權限配置
- 分享接口
- 隱藏按鈕項
- 微信支付
- 第二章 小程序開發
- 基礎知識
- 分包加載
- WXSS樣式表
- 配置
- app.json配置
- window
- tabBar
- page.json配置
- 邏輯層
- app.js
- 場景值
- page.js
- 初始化數據
- 生命周期函數
- 頁面相關事件處理函數
- 事件處理函數
- 頁面實例方法
- 路由
- 文件作用域
- 模塊化
- 視圖層
- 模板語法
- 列表渲染
- 條件渲染
- 模板
- 事件
- 引用
- WXS語法規范
- WXS數據類型
- WXS控制流程
- WXS基礎類庫
- 組件
- 視圖容器
- view
- scroll-view
- swiper
- movable-view
- cover-view
- 基礎組件
- icon
- text
- rich-text
- progress
- 表單組件
- button
- checkbox
- form
- input
- label
- picker
- picker-view
- radio
- slider
- switch
- textarea
- 導航組件
- navigator
- 媒體組件
- audio
- image
- video
- camera
- 地圖組件
- map
- 畫布組件
- canvas
- 開放能力
- web-view
- 自定義組件
- 組件模版和樣式
- Component
- 組件傳值
- 組件事件
- Behaviors
- 組件間關系
- 網絡請求
- wx.request
- 微信登錄
- 獲取 openid 和 unionid
- 獲取用戶信息
- 將 wx.request 封裝為 promise
- 上傳圖片接口封裝
- 數據存儲
- 存儲數據和讀取數據
- 獲取數據緩存信息
- 移除數據緩存
- 獲取用戶設置
- openSetting
- getSetting
- 第三章 小游戲開發
- 參考資料