成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

微信小程序開發(fā)初體驗

開發(fā) 前端
上周被小程序刷了屏,嚇得我周末趕緊擼了個 小程序 版的 知乎日報 壓壓驚, 總結(jié)一下這個開發(fā)體驗,和踩過的坑。小程序 出來第二天就被破解,第三天微信就把開發(fā)工具開發(fā)下載了, 現(xiàn)在只需要下載 微信開發(fā)者工具 就可以使用了,創(chuàng)建項目的時候,要選擇無 appid, 這樣就不會有 appid 的驗證了。

 上周被 小程序 刷了屏,嚇得我周末趕緊擼了個 小程序 版的 知乎日報 壓壓驚, 總結(jié)一下這個開發(fā)體驗,和踩過的坑。

 開發(fā)環(huán)境準備

小程序 出來第二天就被破解,第三天微信就把開發(fā)工具開發(fā)下載了, 現(xiàn)在只需要下載 微信開發(fā)者工具 就可以使用了,

 創(chuàng)建項目的時候,要選擇無 appid, 這樣就不會有 appid 的驗證了。

目錄結(jié)構(gòu)

 

  • app.js 注冊app邏輯, app.wxss 全局樣式文件 app.json 配置信息
  • pages 存放頁面文件
  • utils 工具類代碼
  • images 圖片資源文件

小程序中每一個頁面都會有三個文件 .wxml .wxss .js ,對應著結(jié)構(gòu)、樣式、和邏輯,相當于網(wǎng)頁中的 html css 和 js 的關系。

開發(fā)***個頁面

代碼來自新建項目

  1. <!--index.wxml--> 
  2. <view class="container"
  3.   <view  bindtap="bindViewTap" class="userinfo"
  4.     <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image> 
  5.     <text class="userinfo-nickname">{{userInfo.nickName}}</text> 
  6.   </view
  7.   <view class="usermotto"
  8.     <text class="user-motto">{{motto}}</text> 
  9.   </view
  10. </view 
  1. /**index.wxss**/ 
  2. .userinfo { 
  3.   display: flex; 
  4.   flex-direction: column
  5.   align-items: center; 
  6.  
  7. .userinfo-avatar { 
  8.   width: 128rpx; 
  9.   height: 128rpx; 
  10.   margin: 20rpx; 
  11.   border-radius: 50%; 
  12.  
  13. .userinfo-nickname { 
  14.   color: #aaa; 
  15.  
  16. .usermotto { 
  17.   margin-top: 200px; 
  18.  
  1. //index.js 
  2. //獲取應用實例 
  3. var app = getApp() 
  4. Page({ 
  5.   data: { 
  6.     motto: 'Hello World'
  7.     userInfo: {} 
  8.   }, 
  9.   //事件處理函數(shù) 
  10.   bindViewTap: function() { 
  11.     wx.navigateTo({ 
  12.       url: '../logs/logs' 
  13.     }) 
  14.   }, 
  15.   onLoad: function () { 
  16.     console.log('onLoad'
  17.     var that = this 
  18.     //調(diào)用應用實例的方法獲取全局數(shù)據(jù) 
  19.     app.getUserInfo(function(userInfo){ 
  20.       //更新數(shù)據(jù) 
  21.       that.setData({ 
  22.         userInfo:userInfo 
  23.       }) 
  24.     }) 
  25.   } 
  26. })  

新建的項目中,index 下都會看到這些代碼,接下來分別介紹 wxml wxss js

wxml

這個是頁面結(jié)構(gòu)的描述文件, 主要用于以下內(nèi)容

  • 用標簽形式指定組件使用 <view></view>
  • 使用 wx:for wx:if 等指令完成一些模板上的邏輯處理
  • 使用 bind* 綁定事件

wxss

樣式文件,和 css 語法基本一致,不過支持的選擇器語法有限 看這里, 可以使用 flexbox 完成布局。

內(nèi)部也可以使用 import 命令引入外部樣式文件

  1. @import "common.wxss"
  2.  
  3. .pd { 
  4.     padding-left: 5px; 
  5.  

js

頁面邏輯控制, 遵循 commonJs 規(guī)范 

  1. // util.js 
  2. function formatTime(date) { 
  3.   // .... 
  4.  
  5. function formatDate(date, split) { 
  6.   // ... 
  7. module.exports = { 
  8.   formatTime: formatTime, 
  9.   formatDate: formatDate 
  10.  
  1. var utils = require('../../utils/util.js'

這里的js 并不是在 瀏覽器環(huán)境下運行, 所以 window.* 這一類的代碼都會報錯, dom 操作也是不被允許的,官方目前好像是不能支持其他的 js 庫運行,全封閉式,這個以后應該會逐漸完善。

頁面上使用 Page 方法來注冊一個頁面

  1. Page({ 
  2.   data:{ 
  3.     // text:"這是一個頁面" 
  4.   }, 
  5.   onLoad:function(options){ 
  6.     // 頁面初始化 options為頁面跳轉(zhuǎn)所帶來的參數(shù) 
  7.   }, 
  8.   onReady:function(){ 
  9.     // 頁面渲染完成 
  10.   }, 
  11.   onShow:function(){ 
  12.     // 頁面顯示 
  13.   }, 
  14.   onHide:function(){ 
  15.     // 頁面隱藏 
  16.   }, 
  17.   onUnload:function(){ 
  18.     // 頁面關閉 
  19.   } 
  20. })  

當我們需要改變 綁定的數(shù)據(jù)時,必須調(diào)用 setData 方法修改,才會觸發(fā)頁面更新,像這樣:

  1. Page({ 
  2.     data: { 
  3.         text: '這是一個頁面' 
  4.     }, 
  5.     onLoad: function() { 
  6.         this.setData({ 
  7.             text: 'this is page' 
  8.         }) 
  9.     } 
  10. })  

條件渲染和列表渲染

以下內(nèi)容來自微信官方文檔。

小程序使用 wx:if="{{condition}}" 完成條件渲染,類似于 vue 的 v-if 

  1. <view wx:if="{{condition}}"True </view

也可以用 wx:elif 和 wx:else 來添加一個 else 塊: 

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

wx:for 控制屬性綁定一個數(shù)組,即可使用數(shù)組中各項的數(shù)據(jù)重復渲染該組件。

內(nèi)置變量 index (數(shù)組遍歷的下標), item (數(shù)組遍歷的每一項) 

  1. <view wx:for="{{items}}"
  2.   {{index}}: {{item.message}} 
  3. </view 
  1. Page({ 
  2.   items: [{ 
  3.     message: 'foo'
  4.   },{ 
  5.     message: 'bar' 
  6.   }] 
  7. })  

使用wx:for-item可以指定數(shù)組當前元素的變量名

使用wx:for-index可以指定數(shù)組當前下標的變量名:

  1. <view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName"
  2.  
  3. {{idx}}: {{itemName.message}} 
  4.  
  5. </view 

事件綁定

wxml 只是用 bind[eventName]="handler" 語法綁定事件 

  1. <view bindtap="bindViewTap" class="userinfo"><text>tap</text></view 
  1. Page({ 
  2.     bindViewTap: function(e) { 
  3.         console.log(e.taget) 
  4.     } 
  5. })  

通過 data-* 和 e.target.dateset 傳遞參數(shù) 

  1. <view bindtap="bindViewTap" data-test-msg="啦啦啦啦啦啦" class="userinfo"><text>tap</text></view 
  1. Page({ 
  2.     bindViewTap: function(e) { 
  3.         // 會自動轉(zhuǎn)成駝峰式命名 
  4.         console.log(e.taget.dataset.testMsg) // 啦啦啦啦啦啦 
  5.     } 
  6. })  

目前踩過的坑

事件綁定中 e.target.dataset

當在父組件綁定事件和參數(shù),點擊時又子組件冒泡事件到父組件,這個時候 e.target.dataset 為空 

  1. <view bindtap="bindViewTap" data-test-msg="啦啦啦啦啦啦" class="userinfo"
  2.  
  3. <view><text>tap</text></view
  4.  
  5. </view 
  1. Page({ 
  2.     bindViewTap: function(e) { 
  3.         console.log(e.taget.dataset.testMsg) // undefined 
  4.     } 
  5. })  

在線圖片加載不穩(wěn)定

在知乎日報這個項目上有大量圖片需要從網(wǎng)上下載,這里 image 組件額顯示顯得極其不穩(wěn)定,有很多的圖片都顯示不出來.

***

微信小程序現(xiàn)在還在內(nèi)測階段,有很多的問題需要完善,不過對于開發(fā)速度和體驗來說還是不錯的,期待正式發(fā)布的那一天。

資源

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2017-05-08 15:03:07

微信小程序開發(fā)實戰(zhàn)

2016-09-28 18:10:59

微信程序MINA

2016-11-04 10:49:48

微信小程序

2016-09-27 20:36:23

微信HttpWeb

2018-09-11 10:32:07

云開發(fā)小程序開發(fā)者

2011-07-28 14:19:12

iPhone 網(wǎng)絡編程 聊天程序

2016-11-07 10:30:07

微信小程序安裝配置

2018-12-25 22:38:12

微信功能系統(tǒng)

2021-03-10 09:44:20

微信小程序APP

2020-12-01 15:37:07

Python

2010-08-01 16:11:53

Android

2016-11-28 15:52:09

微信小程序開發(fā)

2016-10-20 21:02:12

微信小程序javascript

2017-01-09 10:01:49

微信小程序

2017-06-09 10:06:54

微信小程序架構(gòu)分析

2017-06-09 10:40:00

微信小程序架構(gòu)分析

2017-06-09 12:58:20

微信小程序架構(gòu)分析

2016-11-04 10:31:49

微信程序指南

2016-11-22 11:23:52

微信小程序騰訊微信

2021-06-10 10:51:27

程序基礎架構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲协和影视 | 久久久男人的天堂 | 国产色在线 | 国产区在线 | 亚洲免费高清 | 成人福利在线 | 久久久久久国产 | 成人av免费在线观看 | 欧美三级在线 | 亚洲精品久久久久久下一站 | 国产羞羞视频在线观看 | 精品久久99| 日韩一区二区三区精品 | 欧美一区二区在线视频 | 国产视频久 | 亚洲国产精品日韩av不卡在线 | 伊人精品在线 | 久久久久久美女 | 亚洲国产视频一区二区 | 在线视频亚洲 | 日韩久久综合 | 四虎国产| 亚洲成人自拍 | 伊人网站 | 风间由美一区二区三区在线观看 | 亚洲成人一区 | 三级成人在线 | 91n成人 | 大象视频一区二区 | 欧美一级欧美三级在线观看 | 神马久久av | 一区二区精品 | 国产中文字幕网 | 91观看| 日韩久久精品 | 亚洲品质自拍视频 | 欧美2区 | 久久性 | 亚洲在线一区二区 | 一区二区三区日韩精品 | 国产九九九 |