一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

私域電商軟件及相關(guān)增值服務(wù)提供商    

免費(fèi)試用

微信小程序使用的框架:邏輯層和視圖層

2017-12-05
導(dǎo)讀:2017年6月14日,微信小程序使用的框架已經(jīng)是當(dāng)下最熱門的話題,下面將從多方面來(lái)談?wù)勎⑿判〕绦蚴褂玫目蚣芟嚓P(guān)的內(nèi)容。...

微信小程序使用的框架已經(jīng)是當(dāng)下最熱門的話題,下面將從多方面來(lái)談?wù)勎⑿判〕绦蚴褂玫目蚣芟嚓P(guān)的內(nèi)容。

小程序的邏輯層由js完成,視圖層由微信提供的WXML(WeiXin Mark Language)和WXSS(WeiXin Style Sheet)文件來(lái)完成。

其中官方給出的解釋:頁(yè)面的腳本邏輯是在JsCore中運(yùn)行,JsCore是一個(gè)沒(méi)有窗口對(duì)象的環(huán)境,所以不能在腳本中使用window,也無(wú)法在腳本中操作組件。同時(shí)由于zepto/jQuery 會(huì)使用到window對(duì)象和document對(duì)象,所以在小程序中均無(wú)法使用。

微信小程序使用的框架:邏輯層和視圖層

邏輯層

邏輯層將數(shù)據(jù)進(jìn)行處理后發(fā)送給視圖層,同時(shí)接受視圖層的事件反饋。 在 JavaScript 的基礎(chǔ)上,微信增加和修改了以下特性:

  • 增加 App 和 Page 方法,進(jìn)行程序和頁(yè)面的注冊(cè)。

  • 增加 getApp 和 getCurrentPages 方法,分別用來(lái)獲取 App 實(shí)例和當(dāng)前頁(yè)面棧。

  • 提供豐富的 API,如微信用戶數(shù)據(jù),掃一掃,支付等微信特有能力。

  • 每個(gè)頁(yè)面有獨(dú)立的作用域,并提供模塊化能力。

  • 由于框架并非運(yùn)行在瀏覽器中,所以 JavaScript 在 web 中一些能力都無(wú)法使用,如 document,window 等。

  • 開(kāi)發(fā)者寫的所有代碼最終將會(huì)打包成一份 JavaScript,并在小程序啟動(dòng)的時(shí)候運(yùn)行,直到小程序銷毀。類似 ServiceWorker,所以邏輯層也稱之為 App Service。

注冊(cè)程序

quikstart示例中App.js文件內(nèi)容如下:

 

//app.js

App({

  onLaunch: function () {

    //調(diào)用API從本地緩存中獲取數(shù)據(jù)

    var logs = wx.getStorageSync('logs') || []

    logs.unshift(Date.now())

    wx.setStorageSync('logs', logs)

  },

  getUserInfo:function(cb){

    var that = this

    if(this.globalData.userInfo){

      typeof cb == "function" && cb(this.globalData.userInfo)

    }else{

      //調(diào)用登錄接口

      wx.login({

        success: function () {

          wx.getUserInfo({

            success: function (res) {

              that.globalData.userInfo = res.userInfo

              typeof cb == "function" && cb(that.globalData.userInfo)

            }

          })

        }

      })

    }

  },

  globalData:{

    userInfo:null

  }

})

 

App()函數(shù)

App() 函數(shù)用來(lái)注冊(cè)一個(gè)小程序。接受一個(gè) object 參數(shù),其指定小程序的生命周期函數(shù)等。

其中onLaunch為系統(tǒng)的生命周期函數(shù),getUserInfo和globalData分別為用戶自定義函數(shù)和數(shù)據(jù)結(jié)構(gòu)對(duì)象。

App() 函數(shù)的object參數(shù)說(shuō)明:

屬性

類型

描述

觸發(fā)時(shí)機(jī)

onLaunchFunction生命周期函數(shù)–監(jiān)聽(tīng)小程序初始化當(dāng)小程序初始化完成時(shí),會(huì)觸發(fā) onLaunch(全局只觸發(fā)一次)

onShowFunction生命周期函數(shù)–監(jiān)聽(tīng)小程序顯示當(dāng)小程序啟動(dòng),或從后臺(tái)進(jìn)入前臺(tái)顯示,會(huì)觸發(fā) onShow

onHideFunction生命周期函數(shù)–監(jiān)聽(tīng)小程序隱藏當(dāng)小程序從前臺(tái)進(jìn)入后臺(tái),會(huì)觸發(fā) onHide

其他Any開(kāi)發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到 Object 參數(shù)中,用 this 可以訪問(wèn)

getApp()函數(shù)

我們提供了全局的 getApp() 函數(shù),可以獲取到小程序?qū)嵗?/span>

示例代碼:

 

// other.js

var appInstance = getApp()

console.log(appInstance.globalData) // I am global data

 

注冊(cè)頁(yè)面

index頁(yè)面中index.js代碼如下:

 

//index.js

//獲取應(yīng)用實(shí)例

var app = getApp()

Page({

  data: {

    motto: 'Hello World',

    userInfo: {}

  },

  //事件處理函數(shù)

  bindViewTap: function() {

    wx.navigateTo({

      url: '../logs/logs'

    })

  },

  onLoad: function () {

    console.log('onLoad')

    var that = this

    //調(diào)用應(yīng)用實(shí)例的方法獲取全局?jǐn)?shù)據(jù)

    app.getUserInfo(function(userInfo){

      //更新數(shù)據(jù)

      that.setData({

        userInfo:userInfo

      })

    })

  }

})

 

Page()函數(shù)

Page() 函數(shù)用來(lái)注冊(cè)一個(gè)頁(yè)面。接受一個(gè) object 參數(shù),其指定頁(yè)面的初始數(shù)據(jù)、生命周期函數(shù)、事件處理函數(shù)等。

object 參數(shù)說(shuō)明:

屬性

類型

描述

dataObject頁(yè)面的初始數(shù)據(jù)

onLoadFunction生命周期函數(shù)–監(jiān)聽(tīng)頁(yè)面加載

onReadyFunction生命周期函數(shù)–監(jiān)聽(tīng)頁(yè)面初次渲染完成

onShowFunction生命周期函數(shù)–監(jiān)聽(tīng)頁(yè)面顯示

onHideFunction生命周期函數(shù)–監(jiān)聽(tīng)頁(yè)面隱藏

onUnloadFunction生命周期函數(shù)–監(jiān)聽(tīng)頁(yè)面卸載

onPullDownRefreshFunction頁(yè)面相關(guān)事件處理函數(shù)–監(jiān)聽(tīng)用戶下拉動(dòng)作

onReachBottomFunction頁(yè)面上拉觸底事件的處理函數(shù)

其他Any開(kāi)發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到 object 參數(shù)中,在頁(yè)面的函數(shù)

Page還提供了setData() 和getCurrentPages()函數(shù)。

setData()函數(shù):

setData 函數(shù)用于將數(shù)據(jù)從邏輯層發(fā)送到視圖層,同時(shí)改變對(duì)應(yīng)的 this.data 的值。

注意:

  1. 直接修改 this.data 無(wú)效,無(wú)法改變頁(yè)面的狀態(tài),還會(huì)造成數(shù)據(jù)不一致。

  2. 單次設(shè)置的數(shù)據(jù)不能超過(guò)1024kB,請(qǐng)盡量避免一次設(shè)置過(guò)多的數(shù)據(jù)。

getCurrentPages()函數(shù):

getCurrentPages() 函數(shù)用于獲取當(dāng)前頁(yè)面棧的實(shí)例,以數(shù)組形式按棧的順序給出,第一個(gè)元素為首頁(yè),最后一個(gè)元素為當(dāng)前頁(yè)面。

注意:不要嘗試修改頁(yè)面棧,會(huì)導(dǎo)致路由以及頁(yè)面狀態(tài)錯(cuò)誤。

API

微信提供了諸多JavaScript形式的微信原生 API,可以方便的調(diào)起微信提供的能力,如獲取用戶信息,本地存儲(chǔ),支付功能等。

API將在專門的章節(jié)介紹。

視圖層WXML

WXML(WeiXin Markup Language)是框架設(shè)計(jì)的一套標(biāo)簽語(yǔ)言,結(jié)合基礎(chǔ)組件、事件系統(tǒng),可以構(gòu)建出頁(yè)面的結(jié)構(gòu)。

用以下一些簡(jiǎn)單的例子來(lái)看看 WXML 具有什么能力:

數(shù)據(jù)綁定

 

<!--wxml-->

<view> {{message}} </view>

// page.js

Page({

  data: {

    message: 'Hello MINA!'

  }

})

 

列表渲染

 

<!--wxml-->

<view wx:for="{{array}}"> {{item}} </view>

// page.js

Page({

  data: {

    array: [1, 2, 3, 4, 5]

  }

})

 

條件渲染

 

<!--wxml-->

<view wx:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view>

<view wx:elif="{{view == 'APP'}}"> APP </view>

<view wx:else="{{view == 'MINA'}}"> MINA </view>

// page.js

Page({

  data: {

    view: 'MINA'

  }

})

 

模板

 

<!--wxml-->

<template name="staffName">

  <view>

    FirstName: {{firstName}}, LastName: {{lastName}}

  </view>

</template>

 

<template is="staffName" data="{{...staffA}}"></template>

<template is="staffName" data="{{...staffB}}"></template>

<template is="staffName" data="{{...staffC}}"></template>

// page.js

Page({

  data: {

    staffA: {firstName: 'Hulk', lastName: 'Hu'},

    staffB: {firstName: 'Shang', lastName: 'You'},

    staffC: {firstName: 'Gideon', lastName: 'Lin'}

  }

})

 

事件

 

<view bindtap="add"> {{count}} </view>

Page({

  data: {

    count: 1

  },

  add: function(e) {

    this.setData({

      count: this.data.count + 1

    })

  }

})

 

 


重磅推薦:小程序開(kāi)店目錄

第一部分:小商店是什么

第二部分:如何開(kāi)通一個(gè)小商店

第三部分:如何登錄小商店

第四部分:開(kāi)店任務(wù)常見(jiàn)問(wèn)題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開(kāi)發(fā)

電話咨詢 微信咨詢 預(yù)約演示 0元開(kāi)店
主站蜘蛛池模板: 91日韩免费|日本精品视频|免费的又色又爽又黄的片|无码视频一区二区三区|日韩成人无码网|亚州欧美一区二区 | 亚洲免费不卡视频|国精产品一品二品国精品69XX|欧美色p|国产成人黄色网址|国产成人无码免费看片软件|欧美一二区在线观看 | 久久久久久久久久久久=av|少妇又白又嫩又色又粗|欧美日韩精品免费观看视一区二区|国产手机精品一区二区|伊人=av网|久久大香萑太香蕉=aV黄软件 | 成午夜精品一区二区三区软件|精品亚洲第一|大地资源二在线视频观看|国产美女视频黄=a视频免费|亚洲国产成人=aV片在线播放|日本乱偷人妻中文字幕在线 | 久久婷婷国产综合尤物精品|日日日噜噜噜|日本韩国欧美一级片|欧美一级二级在线观看|最新无码人妻在线不卡|国产精品入口夜色视频大尺度 | 97久久精品人人澡人人爽|亚洲人成图片小说网站|99久久精品毛片免费播放高潮|夜夜操网站|三区在线|69看片 | #NAME?|天天澡天天弄天天摸|欧美日韩爱爱|亚洲欧美成=aⅴ人在线观看|久久青草伊人|日韩亚=av无码一区二区三区 | 亚洲精品成人|疯狂做受XXXX欧美老人|亚洲精品视频在线观看免费|亚洲一区二区三区在线播放|在线日韩欧美|东京热无码人妻系列综合网站 | 日韩网站中文字幕|国产精品入口在线观看|少妇高潮喷水久久久影院|丰满爆乳无码一区二区三区|一区二区日本在线|婷婷777 | 青青草日韩|亚州=aⅤ中文=aⅴ无码=aⅴ|日本免费=a∨片免费|久久久亚洲=aV无码精品一区|热久久亚洲|农村妇女毛片精品久久久 | 大东北CHINESEXXXX露脸|中文字幕人妻偷伦在线视频|精品一区二区三区毛片|亚洲熟妇丰满xxxxx小品|毛片=av网站|#NAME? | xvideos国产在线观看|国内精自视频品线一区|国产免费久久精品99RESW=aG|又大又长粗又爽又黄少妇视频|毛片大片|成人一区二区三区在线 | 国产精品原创视频|国产综合视频|1000部夫妻午夜免费|亚洲综合九九|色99日韩|成人久久18秘免费 | 免费=a级网站|69=av片|久久看片|爱干=av在线|久久激情视频网|亚洲精品欧美精品 | 国产精品原创视频|国产综合视频|1000部夫妻午夜免费|亚洲综合九九|色99日韩|成人久久18秘免费 | 干亚洲美女|亚洲视频精选|91国自视频|亚洲一级影片|韩国三级在线中文字幕无码|xxx黄色片 | 天天干天天插伊人网|久久久久久一级片|粉嫩久久久久久久极品|人人插人人搞|五月丁香六月综合缴清无码|国产精华=aV午夜在线 | 午夜福利免费院|久草成色在线|一区二区国产高清视频在线|哪里有免费的黄色网址|亚洲久久在线观看|人妻中文无码就熟专区 | 亚洲=a级大片|青草伊人久久综在合线亚洲观看|我爱=av网站|91福利视频免费观看|果冻传媒剧国产免费入口今日更新|老师露双奶头无遮挡挤奶视频 | 成人黄色网址大全|轻点好疼好大好爽视频|欧洲女人牲交性开放视频|377人体粉嫩噜噜噜|伊人热热久久原色播放WWW|在线色网站 国产精品一区二区三区不卡视频|精品国产人成在线|成人久久秘|少妇性l交大片7724com|九色自拍蝌蚪|欧美黄动漫 | 秋霞国产精品一区二区|无遮无挡非常色的视频免费|日韩不卡一卡二卡3卡四卡网站|在线高清国语成人网站|2020天天干夜夜爽|国产99视频精品免费专区 | 最近中文字幕高清免费大全1|久久久久国产亚洲|日本free护士videosxxxx|国产日产高清欧美一区二区三区|免费做爰猛烈吃奶摸视频在线观看|日本无遮挡在线观看 | 中国黄色影院|99精品一区二区三区|久久成人久久|疯狂做受XXXX高潮吃奶|欧洲精品二区|激情超碰在线 | #NAME?|亚洲中文字幕无码=av在线|久久天天躁狠狠躁夜=av|91视频免费入口|午夜三级=a三级三点在线观看|国产乱码字幕精品高清=av | 四虎国产精品永久入口|snh48国产大片永久|成年人免费在线观看视频网站|99久久婷婷国产综合精品首页|9977精品视频免费入口|国产日韩欧美精品一区二区 | 搡女人真爽免费视频网站波兰美女|蜜臀99|多男一女一级淫片免费播放口|日本精品不卡|特级毛片=a级毛片免费观看R|免费成人精品视频 | 麻豆=aV一区二区三区|成人午夜看片|夜夜爽日日澡人人添蜜臀|性做久久久久久久久久|无遮挡又黄又刺激的视频|九一免费观看网站 | 精品国产乱码久久久久乱码|最新在线观看=av|久久亚洲国产精品五月天|337P日本欧洲亚洲大胆精筑|性动态图=aV无码专区|免费观看又色又爽又湿的视频 | 亚洲妇女多毛撒尿XXXⅩ|黄色毛片黄色毛片|公和我做好爽添厨房|日本韩国最新免费观看|日本=a∨精品中文字幕在线|国产免费拔擦拔擦8X高清在线 | 桃色=aV久久无码线观看|东方=aⅴ免费观看久久=av|深夜福利1000|成本人片无码中文字幕免费|成人国产精品一级毛片视频|免费一级黄色毛片 男同免费|久久久久久草莓香蕉步兵|亚洲女女女同性VIDEO|免费的=av不用播放器的|黄频网站在线观看|久久久88 | 久久精品国产清高在天天线|天堂在线观看www|毛片=av在线免费观看|精品国产欧美一区二区五十路|老熟女草BX×|人妻慢慢放弃抵抗开始迎合 | 亚洲永久精品国语字幕|yellow中文字91幕国产在线|综合在线国产|少妇被粗大猛进去69影院|久操视频在线看|夜夜性日日交xxx性视频 | 超碰在线进入|一级全黄少妇免费录像片|欧美大成色WWW永久网站婷|免费看=a=a=a=a=a级淫片涩爱=av|亚洲=av成人一区二区三区在线观看|99一级片 | 91九色porny视频|亚洲4区|日本一区久久|中国老太卖婬HD播放|日本公妇被公侵犯中文字幕|www.youjizz视频 | 久久久久久久久久久久=av|少妇又白又嫩又色又粗|欧美日韩精品免费观看视一区二区|国产手机精品一区二区|伊人=av网|久久大香萑太香蕉=aV黄软件 | gogogo高清在线观看中文版二|色老板在线永久免费视频|国产精品美女自拍|不卡网免费理论影院|97碰在线视频|丰满岳乱妇三级高清 | 中国极品少妇xxxxx小艳|久久国产日韩|九七=av|欧美一级淫片免费看|少妇搡BBBB搡BBBB毛多多|无码人妻一区二区三区巨免费 | 青青草免费在线视频播放|欧美国产一区二区三区|久久综合站|国产=aV视频一区二区|国产精品色在线免费|大片免免费观看视频播放器在线观看 | 日本久久99成人网站|99视频在线免费看|亚洲一区成人在线观看|青草福利在线|中文字幕无线码中文字幕免费|亚洲视频h | 久久久999精品免费|99九九99九九九视频精品|国产高清区|一二三四在线看日本高清|国产乱轮视频|国产精品一区二区欧美 | 99热国内精品永久免费观看|国产欧美高清在线观看|性一交一乱一交=a片|99视频99|国产精品成=av人在线视午夜片|久久网一区 |