免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動推薦你的品牌,搶占AI流量入口!  點擊查看

小程序模板網

像VUE一樣寫微信小程序-深入研究wepy框架

發(fā)布時間:2017-12-29 18:02 所屬欄目:小程序開發(fā)教程

微信小程序自發(fā)布到如今已經有半年多的時間了,憑借微信平臺的強大影響力,越來越多企業(yè)加入小程序開發(fā)。 小程序于M頁比相比,有以下優(yōu)勢:1、小程序擁有更多的能力,包括定位、錄音、文件、媒體、各種硬件能力等,想 ...

 
 
 

微信小程序自發(fā)布到如今已經有半年多的時間了,憑借微信平臺的強大影響力,越來越多企業(yè)加入小程序開發(fā)。 小程序于M頁比相比,有以下優(yōu)勢: 

1、小程序擁有更多的能力,包括定位、錄音、文件、媒體、各種硬件能力等,想象空間更大 

2、運行在微信內部,體驗更接近APP

3、在過度競爭的互聯(lián)網行業(yè)中,獲取一個有效APP用戶的成本已經非常高了,小程序相比APP更加輕量、即用即走, 更容易獲取用戶

開發(fā)對比

從開發(fā)角度來講,小程序官方封裝了很多常用組件給開發(fā)帶來很多便利性,但同時也帶來很多不便: 

1、小程序重新定義了DOM結構,沒有window、document、div、span等,小程序只有view、text、image等 封裝好的組件,頁面布局只能通過這些基礎組件來實現(xiàn),對開發(fā)人員來講需要一定的習慣轉換成本 

2、小程序不推薦直接操作DOM(僅僅從2017年7月開始才可以獲取DOM和部分屬性),如果不熟悉MVVM模式的開發(fā)者, 需要很高的學習成本

3、小程序沒有cookie,只能通過storage來模擬各項cookie操作(包括http中的setCookie也需要自行處理)

wepy

筆者團隊最近開發(fā)了多個微信小程序,為了彌補小程序各項不足和延續(xù)開發(fā)者VUE的開發(fā)習慣,團隊在開發(fā)初期 就選用了wepy框架,該框架是騰訊內部基于小程序的開發(fā)框架,設計思路基本參考VUE,開發(fā)模式和編碼風 格上80%以上接近VUE,開發(fā)者可以以很小的成本從VUE開發(fā)切換成小程序開發(fā),相比于小程序,主要優(yōu)點如下:

1、開發(fā)模式容易轉換 wepy在原有的小程序的開發(fā)模式下進行再次封裝,更貼近于現(xiàn)有MVVM框架開發(fā)模式。框架在開發(fā)過程中參考了 一些現(xiàn)在框架的一些特性,并且融入其中,以下是使用wepy前后的代碼對比圖。

官方DEMO代碼:


		
  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.        console.log('button clicked')

  12.    },

  13.    onLoad: function () {

  14.        console.log('onLoad')

  15.    }

  16. })

基于wepy的實現(xiàn):


		
  1. import wepy from 'wepy';

  2.  

  3. export default class Index extends wepy.page {

  4.  

  5.    data = {

  6.        motto: 'Hello World',

  7.        userInfo: {}

  8.    };

  9.    methods = {

  10.        bindViewTap () {

  11.            console.log('button clicked');

  12.        }

  13.    };

  14.    onLoad() {

  15.        console.log('onLoad');

  16.    };

  17. }

2.真正的組件化開發(fā) 小程序雖然有 標簽可以實現(xiàn)組件復用,但僅限于模板片段層面的復用,業(yè)務代碼與交互事件 仍需在頁面處理。無法實現(xiàn)組件化的松耦合與復用的效果。

wepy組件示例


		
  1. // index.wpy

  2. <template>

  3.    <view>

  4.        <panel>

  5.            <h1 slot="title"></h1>

  6.        </panel>

  7.        <counter1 :num="myNum"></counter1>

  8.        <counter2 :num.sync="syncNum"></counter2>

  9.        <list :item="items"></list>

  10.    </view>

  11. </template>

  12. <script>

  13. import wepy from 'wepy';

  14. import List from '../components/list';

  15. import Panel from '../components/panel';

  16. import Counter from '../components/counter';

  17.  

  18. export default class Index extends wepy.page {

  19.  

  20.    config = {

  21.        "navigationBarTitleText": "test"

  22.    };

  23.    components = {

  24.        panel: Panel,

  25.        counter1: Counter,

  26.        counter2: Counter,

  27.        list: List

  28.    };

  29.    data = {

  30.        myNum: 50,

  31.        syncNum: 100,

  32.        items: [1, 2, 3, 4]

  33.    }

  34. }

  35. </script>

3.支持加載外部NPM包 小程序較大的缺陷是不支持NPM包,導致無法直接使用大量優(yōu)秀的開源內容,wepy在編譯過程當中,會遞歸 遍歷代碼中的require然后將對應依賴文件從node_modules當中拷貝出來,并且修改require為相對路徑, 從而實現(xiàn)對外部NPM包的支持。如下圖:

4.單文件模式,使得目錄結構更加清晰 小程序官方目錄結構要求app必須有三個文件app.json,app.js,app.wxss,頁面有4個文件 index.json,index.js,index.wxml,index.wxss。而且文 件必須同名。 所以使用wepy開發(fā)前后開發(fā)目錄對比如下:

官方DEMO:


		
  1. project

  2. ├── pages

  3. |   ├── index

  4. |   |   ├── index.json  index 頁面配置

  5. |   |   ├── index.js    index 頁面邏輯

  6. |   |   ├── index.wxml  index 頁面結構

  7. |   |   └── index.wxss  index 頁面樣式表

  8. |   └── log

  9. |       ├── log.json    log 頁面配置

  10. |       ├── log.wxml    log



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/18303.html 復制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢: 點擊咨詢
在線客服