微信小程序入門到實(shí)戰(zhàn)的示例分析

這篇文章將為大家詳細(xì)講解有關(guān)微信小程序入門到實(shí)戰(zhàn)的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

10年專注成都網(wǎng)站制作,成都企業(yè)網(wǎng)站建設(shè),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站建設(shè),高端網(wǎng)頁制作,對成都會所設(shè)計(jì)等多個(gè)領(lǐng)域,擁有多年建站經(jīng)驗(yàn)。

調(diào)試方法

小程序的調(diào)試和一般的網(wǎng)頁調(diào)試差不多,但是注意幾點(diǎn):

  • 調(diào)試文件的選擇

打開調(diào)試器,選中Sources頁簽,然后使用快捷鍵:ctrl+p打開搜索框,選擇后綴為sm的文件進(jìn)行調(diào)試。
微信小程序入門到實(shí)戰(zhàn)的示例分析

  • 數(shù)據(jù)綁定的展示

打開調(diào)試器,選中AppData頁簽,可以查看到頁面數(shù)據(jù)綁定的詳細(xì)信息,是否正確綁定。記載著所有頁面的數(shù)據(jù)綁定內(nèi)容。
微信小程序入門到實(shí)戰(zhàn)的示例分析
通過上面這個(gè)圖片,我們就可以知道,只有在datesArry對象里面有需要綁定在頁面上面的數(shù)據(jù)。

Template模版

wxml / wxss / js模塊的復(fù)用,更好的封裝ui和業(yè)務(wù)邏輯  增加復(fù)用性

當(dāng)一塊區(qū)域需要在多個(gè)地方使用的時(shí)候,可以把這個(gè)區(qū)域做成一個(gè)模版,在使用的時(shí)候調(diào)用這個(gè)模版即可,這樣即減少重復(fù)代碼的編寫,又易于維護(hù),讓代碼整潔。

  • 模版代碼的編寫

<template name='postItem'>
  <view class='box'>
    <view class='title-box'>
      <text class='title'>{{item.title}}</text>
      <text class='date'>{{item.date}}</text>
    </view>
    <image src='{{item.imgUrl}}' class='cont-image'></image>
    <text class='content'>{{item.content}}</text>
  </view>
</template>

為了方便管理我們的模版文件,可以在pages文件夾下面,新建一個(gè)模版文件,里面存放編寫的模版;我們要使用標(biāo)簽template來包裹代碼,并且要給其加一個(gè)name屬性,當(dāng)然也要編寫對應(yīng)的樣式,和正常寫樣式的方法沒有區(qū)別。

新建的模版文件里面只能存放模版的wxmlwxss文件,目前小程序的模版文件里面放入其他的文件類型不起作用,不能進(jìn)行復(fù)用,雖然不報(bào)錯(cuò),比如js文件。

template標(biāo)簽只是一種占位符,告訴編譯器這個(gè)地方是加載模版代碼的,當(dāng)頁面編譯完成,這個(gè)標(biāo)簽就消失,所以要對與模版文件響應(yīng)事件,我們就需要在加載模版文件的區(qū)域,使用一個(gè)可以添加事件的標(biāo)簽把其模版文件包裹起來,比如:view / block

<view bindtap=” ....”> template模版代碼 </view>

  • 使用模版代碼

編寫好了模版代碼,怎么樣在需要加載模版代碼的地方使用呢?

首先,模版代碼是在其他文件夾中,使用它,就必然要引入該模版文件,
一般在對應(yīng)要引入模版文件的文件開頭部分引入:

// 在對應(yīng)的wxml文件中開頭引入
<import  src = '模版wxml文件路徑' />

// 在對應(yīng)的wxss文件中開頭引入,注意末尾的分號
@import '模版wxss文件路徑' ;

然后在引入模版文件的wxml文件,適當(dāng)位置使用

  <template  is = '模版的名字'   data="{{要綁定到模版的數(shù)據(jù)}}"

到此,簡單的模版引入和模版數(shù)據(jù)的綁定就完成,當(dāng)我們要循環(huán)模版的時(shí)候,只需要如下,在外面加一層標(biāo)簽即可:

// bolck標(biāo)簽的作用是作用事件到template模版上面
<block wx:for=" 服務(wù)器獲取的數(shù)據(jù)集"  wx:for-item='item' wx:for-index='index' >
    <template  is = '模版的名字'   data="{{要綁定到模版的數(shù)據(jù),一般是服務(wù)器獲取的一個(gè)數(shù)據(jù)對象item}}"
</block>

模版循環(huán)

前一篇文章說了一下數(shù)據(jù)的循環(huán),借用屬性wx:for=' ',通過默認(rèn)得到的item / index可以知道對應(yīng)的子對象數(shù)據(jù)和其索引值;但是我們發(fā)現(xiàn),每一個(gè)模版綁定的數(shù)據(jù)項(xiàng)前面都要使用item.屬性值(子對象的屬性值)來綁定數(shù)據(jù),item是多余的,有沒有辦法去簡化?當(dāng)然有!

<view wx:for='{{datesArry}}' wx:for-item='item' wx:for-index='idx'>
// 在對應(yīng)的item的前面加上 ... 三個(gè)點(diǎn)
  <template is='postItem' data='{{...item}}'  />  
  // <view>{{idx}}</view>
</view>

在循環(huán)的子對象item前面加上...三個(gè)點(diǎn),就行。簡單的一行代碼就實(shí)現(xiàn)了下圖的頁面。

前面加三個(gè)小點(diǎn)的作用:相當(dāng)于把子對象給平鋪,直接展開了里面的屬性值,就可以直接在模版里面綁定這些屬性值,不需要在模版里面指定其數(shù)據(jù)源(這就是...的作用)
微信小程序入門到實(shí)戰(zhàn)的示例分析

自定義屬性

自定義屬性一般說來都是使用data-開頭,綁定一些我們需要存儲的信息,傳遞到其他地方,比如點(diǎn)擊的頁面文章索引。

  • 設(shè)置自定義屬性

設(shè)置自定義屬性很簡單,但是要注意一點(diǎn)的是,在操作模版的時(shí)候,一定要在其外面包裹一層view,才能進(jìn)行操作;原因是template標(biāo)簽只是一個(gè)占位符,編譯后就消失。

<view wx:for='{{datesArry}}' wx:for-item='item' data-postId='{{item.postId}} wx:for-index='idx' catchtap='onPostTap' '>
  <template is='postItem' data='{{...item}}' />
</view>

item.postId是從服務(wù)器上面獲取的,是數(shù)據(jù)源中的一個(gè)屬性。

  • 獲取自定義屬性

獲取自定義屬性,當(dāng)然是通過事件去獲取

  onPostTap:function(event){
      var postId=event.currentTarget.dataset.postid;
      var postIdData = event.currentTarget.dataset;
      console.log(postId);   // 1 
      console.log(postIdData);
  }

event.currentTarget.dataset.postid:獲取的自定義屬性值

  • event事件對象

  • event.currentTarget:當(dāng)前點(diǎn)擊的目標(biāo)元素

  • event.currentTarget.dataset:目標(biāo)元素上面的自定義屬性集合

通過獲取到的自定義屬性,可以作為一個(gè)參數(shù)綁定一個(gè)鏈接上面,達(dá)到不同欄位的點(diǎn)擊跳轉(zhuǎn)到不同的頁面:

  onPostTap:function(event){
      var postId=event.currentTarget.dataset.postid;
      wx.navigateTo({
        url: 'xxxx?id='+postId,
      })
  }

上面只是說明了在同一個(gè)頁面之間獲取自定義屬性,要是在不同頁面之間怎么獲取自定義屬性,達(dá)到傳遞值的作用呢?

wx.navigateTo({
        url: 'xxxx?id='+postId,
      })

通過上面的方法把參數(shù)postId,傳遞出去,然后在要接收的頁面中使用options.id來獲取

 onLoad: function (options) {
    var postId = options.id;
    console.log(options);
  }

options.id就是通過wx.navigateTo傳遞過去的postId

關(guān)于“微信小程序入門到實(shí)戰(zhàn)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

網(wǎng)頁名稱:微信小程序入門到實(shí)戰(zhàn)的示例分析
本文路徑:http://bm7419.com/article42/jcsohc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、標(biāo)簽優(yōu)化、微信公眾號、域名注冊、云服務(wù)器、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站