japanesexxxx护士_91精品国产高跟肉丝袜在线_狠色狠狠色狠狠狠色综合久久_三级国产日产

資訊動態

WXS|WXS腳本語言

日期:2017-08-31 作者:管理員 來源:互聯網

WXS

WXS(WeiXin Script)是小程序的一套腳本語言,結合 WXML,可以構建出頁面的結構。

以下是一些使用 WXS 的簡單示例:


WXS,WXS語言,WXS腳本語言,微信小程序

WXSWXS語言、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



框架

小程序開發框架的目標是通過盡可能簡單、高效的方式讓開發者可以在微信中開發具有原生 APP 體驗的服務。

框架提供了自己的視圖層描述語言 WXML 和 WXSS,以及基于 JavaScript 的邏輯層框架,并在視圖層與邏輯層間提供了數據傳輸和事件系統,可以讓開發者可以方便的聚焦于數據與邏輯上。

響應的數據綁定

框架的核心是一個響應的數據綁定系統。

整個系統分為兩塊視圖層(View)和邏輯層(App Service)

框架可以讓數據與視圖非常簡單地保持同步。當做數據修改的時候,只需要在邏輯層修改數據,視圖層就會做相應的更新。

通過這個簡單的例子來看:

<!-- This is our View --> <view> Hello {{name}}! </view> <button bindtap="changeName"> Click me! </button>
// This is our App Service. // This is our data. var helloData = {
  name: 'WeChat' } // Register a Page. Page({
  data: helloData,
  changeName: function(e) { // sent data change to view this.setData({
      name: 'MINA' })
  }
})
  • 開發者通過框架將邏輯層數據中的 name 與視圖層的 name 進行了綁定,所以在頁面一打開的時候會顯示 Hello WeChat!

  • 當點擊按鈕的時候,視圖層會發送 changeName 的事件給邏輯層,邏輯層找到對應的事件處理函數

  • 邏輯層執行了 setData 的操作,將 name 從 WeChat 變為 MINA,因為該數據和視圖層已經綁定了,從而視圖層會自動改變為 Hello MINA! 。

頁面管理

框架 管理了整個小程序的頁面路由,可以做到頁面間的無縫切換,并給以頁面完整的生命周期。開發者需要做的只是將頁面的數據,方法,生命周期函數注冊進 框架 中,其他的一切復雜的操作都交由 框架 處理。

基礎組件

框架 提供了一套基礎的組件,這些組件自帶微信風格的樣式以及特殊的邏輯,開發者可以通過組合基礎組件,創建出強大的微信小程序 。

豐富的 API

框架 提供豐富的微信原生 API,可以方便的調起微信提供的能力,如獲取用戶信息,本地存儲,支付功能等。


基礎組件

框架為開發者提供了一系列基礎組件,開發者可以通過組合這些基礎組件進行快速開發。

什么是組件:

  • 組件是視圖層的基本組成單元。

  • 組件自帶一些功能與微信風格的樣式。

  • 一個組件通常包括開始標簽和結束標簽,屬性用來修飾這個組件,內容在兩個標簽之內。

    <tagname property="value"> Content goes here ... </tagname>

    注意:所有組件與屬性都是小寫,以連字符-連接

屬性類型

類型 描述 注解
Boolean 布爾值 組件寫上該屬性,不管該屬性等于什么,其值都為true,只有組件上沒有寫該屬性時,屬性值才為false。如果屬性值為變量,變量的值會被轉換為Boolean類型
Number 數字 1, 2.5
String 字符串 "string"
Array 數組 [ 1, "string" ]
Object 對象 { key: value }
EventHandler 事件處理函數名 "handlerName" 是 Page中定義的事件處理函數名
Any 任意屬性

共同屬性類型

所有組件都有的屬性:

屬性名 類型 描述 注解
id String 組件的唯一標示 保持整個頁面唯一
class String 組件的樣式類 在對應的 WXSS 中定義的樣式類
style String 組件的內聯樣式 可以動態設置的內聯樣式
hidden Boolean 組件是否顯示 所有組件默認顯示
data-* Any 自定義屬性 組件上觸發的事件時,會發送給事件處理函數
bind* / catch* EventHandler 組件的事件 詳見事件

特殊屬性

幾乎所有組件都有各自定義的屬性,可以對該組件的功能或樣式進行修飾,請參考各個組件的定義。

組件列表

基礎組件分為以下七大類:

視圖容器(View Container):

組件名 說明
view 視圖容器
scroll-view 可滾動視圖容器
swiper 滑塊視圖容器

基礎內容(Basic Content):

組件名 說明
icon 圖標
text 文字
progress 進度條

表單(Form):

標簽名 說明
button 按鈕
form 表單
input 輸入框
checkbox 多項選擇器
radio 單項選擇器
picker 列表選擇器
picker-view 內嵌列表選擇器
slider 滾動選擇器
switch 開關選擇器
label 標簽

導航(Navigation):

組件名 說明
navigator 應用鏈接

多媒體(Media):

組件名 說明
audio 音頻
image 圖片
video 視頻

地圖(Map):

組件名 說明
map 地圖

畫布(Canvas):

組件名 說明
canvas 畫布

客服會話:

組件名 說明
contact-button 進入客服會話按鈕



API

框架提供豐富的微信原生API,可以方便的調起微信提供的能力,如獲取用戶信息,本地存儲,支付功能等。

說明:

  • wx.on 開頭的 API 是監聽某個事件發生的API接口,接受一個 CALLBACK 函數作為參數。當該事件觸發時,會調用 CALLBACK 函數。

  • 如未特殊約定,其他 API 接口都接受一個OBJECT作為參數。

  • OBJECT中可以指定success, fail, complete來接收接口調用結果。

參數名 類型 必填 說明
success Function 接口調用成功的回調函數
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

API列表:

網絡 API 列表:

API 說明
wx.request 發起網絡請求
wx.uploadFile 上傳文件
wx.downloadFile 下載文件
wx.connectSocket 創建 WebSocket 連接
wx.onSocketOpen 監聽 WebSocket 打開
wx.onSocketError 監聽 WebSocket 錯誤
wx.sendSocketMessage 發送 WebSocket 消息
wx.onSocketMessage 接受 WebSocket 消息
wx.closeSocket 關閉 WebSocket 連接
wx.onSocketClose 監聽 WebSocket 關閉

媒體 API 列表:

API 說明
wx.chooseImage 從相冊選擇圖片,或者拍照
wx.previewImage 預覽圖片
wx.startRecord 開始錄音
wx.stopRecord 結束錄音
wx.playVoice 播放語音
wx.pauseVoice 暫停播放語音
wx.stopVoice 結束播放語音
wx.getBackgroundAudioPlayerState 獲取音樂播放狀態
wx.playBackgroundAudio 播放音樂
wx.pauseBackgroundAudio 暫停播放音樂
wx.seekBackgroundAudio 控制音樂播放進度
wx.stopBackgroundAudio 停止播放音樂
wx.onBackgroundAudioPlay 監聽音樂開始播放
wx.onBackgroundAudioPause 監聽音樂暫停
wx.onBackgroundAudioStop 監聽音樂結束
wx.chooseVideo 從相冊選擇視頻,或者拍攝

文件 API 列表:

API 說明
wx.saveFile 保存文件
wx.getSavedFileList 獲取已保存的文件列表
wx.getSavedFileInfo 獲取已保存的文件信息
wx.removeSavedFile 刪除已保存的文件信息
wx.openDocument 打開文件

數據 API 列表:

API 說明
wx.getStorage 獲取本地數據緩存
wx.getStorageSync 獲取本地數據緩存
wx.setStorage 設置本地數據緩存
wx.setStorageSync 設置本地數據緩存
wx.getStorageInfo 獲取本地緩存的相關信息
wx.getStorageInfoSync 獲取本地緩存的相關信息
wx.removeStorage 刪除本地緩存內容
wx.removeStorageSync 刪除本地緩存內容
wx.clearStorage 清理本地數據緩存
wx.clearStorageSync 清理本地數據緩存

位置 API 列表:

API 說明
wx.getLocation 獲取當前位置
wx.chooseLocation 打開地圖選擇位置
wx.openLocation 打開內置地圖
wx.createMapContext 地圖組件控制

設備 API 列表:

API 說明
wx.getNetworkType 獲取網絡類型
wx.onNetworkStatusChange 監聽網絡狀態變化
wx.getSystemInfo 獲取系統信息
wx.getSystemInfoSync 獲取系統信息
wx.onAccelerometerChange 監聽加速度數據
wx.startAccelerometer 開始監聽加速度數據
wx.stopAccelerometer 停止監聽加速度數據
wx.onCompassChange 監聽羅盤數據
wx.startCompass 開始監聽羅盤數據
wx.stopCompass 停止監聽羅盤數據
wx.setClipboardData 設置剪貼板內容
wx.getClipboardData 獲取剪貼板內容
wx.makePhoneCall 撥打電話
wx.scanCode 掃碼

界面 API 列表:

API 說明
wx.showToast 顯示提示框
wx.showLoading 顯示加載提示框
wx.hideToast 隱藏提示框
wx.hideLoading 隱藏提示框
wx.showModal 顯示模態彈窗
wx.showActionSheet 顯示菜單列表
wx.setNavigationBarTitle 設置當前頁面標題
wx.showNavigationBarLoading 顯示導航條加載動畫
wx.hideNavigationBarLoading 隱藏導航條加載動畫
wx.navigateTo 新窗口打開頁面
wx.redirectTo 原窗口打開頁面
wx.switchTab 切換到 tabbar 頁面
wx.navigateBack 退回上一個頁面
wx.createAnimation 動畫
wx.createContext 創建繪圖上下文
wx.drawCanvas 繪圖
wx.stopPullDownRefresh 停止下拉刷新動畫

WXML節點信息 API 列表:

API 說明
wx.createSelectorQuery 創建查詢請求
selectorQuery.select 根據選擇器選擇單個節點
selectorQuery.selectAll 根據選擇器選擇全部節點
selectorQuery.selectViewport 選擇顯示區域
nodesRef.boundingClientRect 獲取布局位置和尺寸
nodesRef.scrollOffset 獲取滾動位置
nodesRef.fields 獲取任意字段
selectorQuery.exec 執行查詢請求

開放接口:

API 說明
wx.login 登錄
wx.getUserInfo 獲取用戶信息
wx.chooseAddress 獲取用戶收貨地址
wx.requestPayment 發起微信支付
wx.addCard 添加卡券
wx.openCard 打開卡券



不能直接操作 Page.data

避免在直接對 Page.data 進行賦值修改,請使用 Page.setData 進行操作才能將數據同步到頁面中進行渲染

怎么獲取用戶輸入

能夠獲取用戶輸入的組件,需要使用組件的屬性bindblur將用戶的輸入內容同步到 AppService。

<input id="myInput" bindblur="bindBlur" />
var inputContent = {}

Page({
  data: {
    inputContent: {}
  },
  bindBlur: function(e) {
    inputContent[e.currentTarget.id] = e.detail.value
  }
})

為什么腳本內不能使用window等對象

頁面的腳本邏輯是在JsCore中運行,JsCore是一個沒有窗口對象的環境,所以不能在腳本中使用window,也無法在腳本中操作組件

為什么 zepto/jquery 無法使用

zepto/jquery 會使用到window對象和document對象,所以無法使用。

wx.navigateTo無法打開頁面

一個應用同時只能打開5個頁面,當已經打開了5個頁面之后,wx.navigateTo不能正常打開新頁面。請避免多層級的交互方式,或者使用wx.redirectTo

樣式表不支持級聯選擇器

WXSS支持以.開始的類選擇器。如:

.normal_view { color: #000000; padding: 10px;
}

可以使用標簽選擇器,控制同一類組件的樣式。如:使用input標簽選擇器控制<input/>的默認樣式。

input { width: 100px;
}

本地資源無法通過 WXSS 獲取

background-image:可以使用網絡圖片,或者 base64,或者使用<image/>標簽

如何修改窗口的背景色

使用 page 標簽選擇器,可以修改頂層節點的樣式

page { display: block; min-height: 100%; background-color: red;
}

HTTPS 請求不成功

  1. tls 僅支持 1.2 及以上版本

  2. 部分 Android 機型需要 tls1.0 或者 tls1.1,所以請確保服務器的 tls 版本為 1.0、1.1、1.2

網絡請求的 referer

網絡請求的 referer 是不可以設置的,格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 為小程序的 appid,{version} 為小程序的版本號,版本號為 0 表示為開發版、體驗版以及審核版本,版本號為 devtools 表示為開發者工具,其余為正式版本。

為什么 map 組件總是在最上層

map、canvas、video、textarea 是由客戶端創建的原生組件,原生組件的層級是最高的,所以頁面中的其他組件無論設置 z-index 為多少,都無法蓋在原生組件上。 原生組件暫時還無法放在 scroll-view 上,也無法對原生組件設置 css 動畫。


二維碼
掃二維碼手機查看該文章
當前網址:http://daago.cn/wechat/447.html

相關資訊

?
Copyright ? 2007-2024 珠海市網訊互聯信息科技有限公司 daago.cn 版權所有
粵公網安備44040202000391號 粵ICP備19117377號 網站地圖 站點地圖
在線客服