將小程序代碼轉成uni-app代碼

首先你可以先到uni-app的官網簡單看一下對它的介紹,本次文章的介紹是針對簡單的微信小程序來進行的轉化。

在這之前我們來看一下目錄對比

     

 

 

下面就來介紹一下轉移的步驟

1、首先你要新創建一個uniapp項目,然後在pages文件下創建一個目錄,隨便創建,你這裏和你小程序的項目名稱保持一致也是可以的。然後我這裏給一個示例:我在pages文件下新建了目錄 demo 然後在它之下創建了demo.vue 文件

<template>
</template>

<script>
</script>

<style>
</style>

2.在pages.json裏配置它的路勁信息。

"pages": [ //pages數組中第一項表示應用啓動頁,參考:https://uniapp.dcloud.io/collocation/pages
		
		{"path": "pages/demo/demo",}
],

3.接下來就可以進行轉移了

1)把小程序 .wxml 的下的佈局文件 都拷貝到 <template> 標籤下

2)把 小程序樣式文件 .wxss 樣式 都拷貝到  <style>文件下 這裏的 style 可以  加上scoped  就是隻對自己引用,防止佈局亂了 <style scoped>

3)接下來就要修改 標籤的一些屬性方法的用法了,這裏只介紹我遇到了,沒有介紹到的可以到官網進行查看。

-1.列表渲染,在小程序中這樣使用

<view class='item' wx:for="{{lesson}}" wx:key="ID" wx:for-item="item">

在uni-app中要這樣使用 是vue的用法

<view class='item' v-for="(item,index) in lessonto " :key="index">

-2.條件語句 在小程序中這樣使用

 <label id="btnCollect_40" data-id='{{item.ID}}' wx:if="{{item.iscollection}}">已收藏</label>
 <label id="btnCollect_40"  class='deletecolor' bindtap="collectionClick" data-id='{{item.ID}}' wx:else>收藏</label>

在uni-app中要這樣使用  vue用法

<button v-if="item.iscollection" class="deletecolorto" type="primary" size="mini">已收藏</button>

 

-3. class的動態綁定 在小程序中這樣使用

<view class="div {{scope=='all'?'selected':''}}" catchtap='selecttype' data-type='all'>所有資料</view>

在uni-app中要這樣使用 
 

<view class='itop' :class="{kai:item.isopen}">

-4:點擊事件  在小程序中:用 bindtap

 <label id="btnCollect_40"  class='deletecolor' bindtap="collectionClick" data-id='{{item.ID}}' wx:else>收藏</label>

在uni-app中要這樣使用  @click

<view class="shareto" hover-class="shareto_on" @click='showPgFn'>

-5.向方法裏傳遞數據   在小程序中  使用data-   小程序的方法不支持直接傳遞數據

 <view class="bookimage"  bindtap='ShowResourceList' data-id='{{item.ID}} '>

在uni-app中 方法傳遞數據和 vue一樣

<view class="bookimage" @click='ShowResourceList(item.ID)'>

 

-6:組件的事件方法參考文檔對應修改  

 

4)最後一步,就是把 小程序裏的 js 寫的方法放在  script標籤下

注意 data  的應用有所不同。

-1.小程序中    想要動態改變組件   this.setData({scope:"all"})

data: {
    scope:'my',
    
  },

uni-app中: 想要動態改變組件  this.scope='all'

export default {
		data() {
			return {
				scope: 'my',
			}
		},

-2.生命週期勾子函數和小程序一樣

-3. 方法的使用,自定義的一些方法 在小程序中,這樣

 // 選擇分類
  selecttype:function(e){
    var type = e.currentTarget.dataset.type;
    this.setData({
      scope: type,
    })
    this.getlesson(type);
  },

在uni-app中這樣   注意要放在 methods  方法裏 根據實際情況進行一些修改

 // 選擇分類
  selecttype(type){
   
    this.scope: type,
   
  },

-4:頁面的跳轉以及傳參 在小程序中

 wx.navigateTo({
 url: '../tingxie/tingxie?id=' + that.data.audioID 
+ "&url=" + that.data.audiourl + "&classlist=" + 
JSON.stringify(this.data.classlist)
 + "&random=" +random_s1
 + "&readnumber=" + that.data.readnumber
  })

接收參數:示例:

onLoad: function (options) {
var url = options.url;
this.data.url = url;


}

 

 uni-app的跳轉頁面以及傳參

uni.navigateTo({
url: '/pages/tingxie/tingxie?id=' + this.audioID 
+ "&url=" + this.audiourl
 + "&classlist=" + JSON.stringify(that.classlist)
 + "&random=" + random_s1
 + "&readnumber=" + this.readnumber
});

 接收參數:

onLoad(options) {

var url = options.url;
this.url = url;
}

總結:注意一些細節,勇於解決bug。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章