1. 程式人生 > >初探小程式之mpvue 以及 iView Weapp 的使用

初探小程式之mpvue 以及 iView Weapp 的使用

前言:mpvue —— 美團開源的小程式開發框架。自開源依賴獲得了大量star並一躍成為了小程式開發的新寵。如果說wepy是類vue開發,那mpvue是無限接近vue開發。

 

mpvue:繼承自vue.js,其技術規範和語法特點與 vue.js 保持一致。

 

名稱由來:mp:mini program 的縮寫

        mpvue:Vue.js in mini program

 

框架原理:mpvue 保留了 vue.runtime 核心方法,無縫繼承了 Vue.js 的基礎能力

        mpvue-template-compiler 提供了將 vue 的模板語法轉換到小程式的 wxml 語法的能力

                 修改了 vue 的建構配置,使之構建出符合小程式專案結構的程式碼格式: json/wxml/wxss/js 檔案

 

常見使用:

  • 元件傳參:===>>注意:微信小程式官方的路由API傳參時只能傳遞 字串型別 的資料

               傳遞:wx.navigateTo({url : "url地址?引數1=值1&引數2=值3..." });

               接收:this.$root.$mp.query.引數名    ==>>小程式page onLoad生命週期內,即監聽頁面載入

                          this.$root.$mp.appOptions.引數名      ==>>小程式app onLaunch/onShow

生命週期內,即初始化和小程式啟動                                                                                                 或從後臺進入前臺顯示

               例項:wx.navigateTo({url : '../addAddress/main?editItem=' + JSON.stringify(item)});

                          if(this.$root.$mp.query.editItem){             //mounted 生命週期內

                                    console.log(JSON.parse(this.$root.$mp.query.editItem));

                           }

  • 小程式的路由API

           wx.redirectTo({ url : '' } { success / fail / complete的回撥函式 });    ==>>  重定向

           wx.reLaunch({ url : '' } { success / fail / complete的回撥函式 });    ==>>  關閉所有頁面,開啟到應用內的某個頁面

           wx.navigateTo({ url : '' } { success / fail / complete的回撥函式 });    ==>>  調整頁面

           wx.switchTab({ url : '' } { success / fail / complete的回撥函式 });    ==>>  調整tabBar 頁面

           wx.navigateBack({ url : '' } { success / fail / complete的回撥函式 });    ==>>  返回上一頁

  • .stop 的使用會阻止冒泡,但是同時綁定了一個非冒泡事件,會導致該元素上的 catchEventName 失效!

         eg: <div @click = "click1">

                       <p @click.stop = "click2">點選子元素</p>

               </div>     

  • .prevent 可以直接幹掉,因為小程式裡沒有什麼預設事件,比如submit並不會跳轉頁面
  • .self 沒有可以判斷的標識
  • .once 也不能做,因為小程式沒有 removeEventListener, 雖然可以直接在 handleProxy 中處理,但非常的不優雅,違背了原意,暫不考慮

 

專案目錄程式碼解釋:

 

pages資料夾中的每一個頁面中的檔案:index.vue、main.js、main.json

index.vue   ==>>  通過vue.js、小程式元件和API、UI框架iview以及JavaScript寫頁面佈局和邏輯處理

main.js  ==>>  例項化vue元件並掛載元件;固定寫法

import Vue from 'vue'
import App from './index'

const app = new Vue(App)
app.$mount()

main.json  ==>>  該頁面的頁面配置;如頁面標題欄的文字,需要用的UI元件引入

{
  "navigationBarTitleText": "我的",           
  "navigationBarBackgroundColor": "#fcc",
  "navigationBarTextStyle": "black",
  "usingComponents": {
    "i-button": "/static/iview/button/index",
    "i-icon": "/static/iview/icon/index"
  }
}

微信小程式的配置可以閱讀官方文件:

https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE

 

iview Weapp元件的使用方法:

1. 下載小程式元件庫 (前提是你已經有了專案目錄)

        你可以直接去github把iView Weapp的程式碼下載下來,也可以用過npm來下載。

        github地址:https://github.com/TalkingData/iview-weapp

2. 將元件庫複製到工程的static目錄下

        下載完成後,到它的目錄中尋找名為dist的目錄並複製到你的mpvue工程下的static目錄下(記得一定要是static目錄,否則這些程式碼會被mpvue編譯器錯誤的進行處理),然後給這個dist目錄改個名字,比如叫iview。

       如:

3.  為需要使用自定義元件的Page進行配置

       在頁面對應的配置檔案(main.json)中引入元件

         

4. 在Page中使用自定義元件;即在index.vue中使用

注意:iView Weapp給我的感覺好像是沒有開發完成(畢竟是2018-05才出來的);很多元件提供的屬性根本沒有作用,甚至於暴露出來的屬性在他們的原始碼裡面根本就沒有定義(但就算是這樣的情況,iView Weapp也是比較好的UI框架了)。所以請大家在使用時注意,前方高能,注意填坑!!!

 

最後:總結一下可能用到的官方文件

mpvue:http://mpvue.com/

微信小程式:https://developers.weixin.qq.com/miniprogram/dev/

iView Weapp:https://weapp.iviewui.com/docs/guide/start

vue.js:https://cn.vuejs.org/v2/guide/

iView Weapp GitHub下載:https://github.com/TalkingData/iview-weapp

 

文章僅為本人學習過程的一個記錄,僅供參考,如有問題,歡迎指出!