国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

小程序實用框架之WePY篇

張康康 ? 2019-08-26 18:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一.WePY 是什么?

8c58a2cdc0d14556be4ea3efb016b5d3.png

前端開發者肯定對 Vue.js 和 Webpack 這兩個開源項目非常熟悉。Web App 或 H5 開發過程中,我們常常將 Vue.js 用作核心庫,用 Webpack 做模塊化打包,讓其能夠運行于瀏覽器端。那么 WePY 是什么東西呢?我們可以把 WePY 理解成 Web 端的 Vue.js 和 Webpack 的結合體,它能夠通過編譯手段運行在小程序端,并且可以使用 Vue.js 的一些語法和特性。

二.WePY 的功能與特點

首先我們先說說原生小程序開發中的痛點

1) 頻繁調用 setData及 setData過程中頁面跳閃

2) 組件化支持能力太弱(幾乎沒有)

3) 不能使用 less、jade 等

4) 無法使用 NPM 包及 ES 高級語法

5) request 并發次數限制

6) 一個頁面對應4個文件,看的眼花繚亂

WePY相比于小程序,主要優點如下:

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

官方DEMO代碼:

92d3aec181894931bcad1afd317194fb.png

基于wepy的實現:

68c28da8d0b04d69aa43af73b66a62b6.png

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

wepy組件示例

f06074565da2480c98184e9e32bc4c3a.png

a7f8d65e42a646bfa2c6591194e0d10c.png

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

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

5.默認使用babel編譯,支持ES6/7的一些新特性。

6.wepy支持使用less默認開啟使用了一些新的特性如promise,async/await等等

三.WePY 開發總結

1. 自定義 interceptor

創建 network 文件夾 新建 interceptor.js

905a88a18cde4861880f48009136a578.png

新建 index.js

ea0d39b4900a40918ccb31616037292f.png

最后在 app.wpy中引入 req

32a58eb7489649c6b3b64228fc35e715.png

2. request 加入失敗重試

創建 retry.js

12c2dd461794457598bea47580addb29.png

修改 network 下index.js

f561ca58f06f4231ba87acb6715b6005.png

3. repeat標簽嵌套兩級以及以上組件傳值給自組件傳值問題

5d0dec913c8345239d9817922eaa41ba.png

這個問題其實是wepy的一個bug,在github上已經有好多人提過Issues,官方并沒有給出解釋,經過自己的摸索,有兩種解決方式:

  1. 對于純組件用小程序原生的模板template代替

子組件中第二層循環采用此寫法,直接使用template

628b7aa6cdca40c498a42d953a89db0d.png

在主頁面中引入此模板

3764ef33293c4eb9970ba3d982b78e86.png

wepy最終會把所引用的組件代碼,都打包到一個主頁面中的,所以在主頁面引入模板即可

  1. 第一種方法可以解決這個問題,并且還節省了代碼量,但這屬于wepy和原生小程序混寫,后面又發現另一種解決辦法

對于第二層循環要傳的值,用repeat標簽包裹一層

f8b79e03898b49ecab58f5fa3490cb4f.png

4. 小程序開發工具變慢

在開發過程城中,隨著項目文件的越來越大,會發現小程序的開發工具越來越慢,甚至一個跳轉都要等幾秒鐘才能跳轉過去,這個時候需要把小程序打包出來的文件dist文件夾刪掉,然后重新打包,會快很多,wepy也提供了命令,直接運行 npm run clean 也能達到同樣的效果。

5. 小程序在手機上預覽,出現卡頓現象

出現這種情況有多方面的原因,如果你之前用過原生小程序開發過項目,那么直接點擊開發工具上的預覽按鈕,然后用手機掃碼預覽是一個常見的操作,但是在使用wepy過程中,你使用npm run dev 命令后,是出于開發環境,dist文件夾中的代碼并沒有進行壓縮,優化,所以手機預覽的時候會顯得很慢,運行 npm run build打成生產包預覽,可以解決。

6. 個別手機樣式錯亂

安裝 autoprefixer 即可

7. mixin

wepy的mixin,與vue中的mixin執行順序相反

  • wepy中,會先執行組件自身的,再執行mixin中的

  • vue中對于鉤子函數,會先執行mixin中的,再執行組件自身的;vue中methods如果和mixin同名,那么只會執行自身的方法

以上是wepy的簡要介紹,有興趣的朋友可以閱讀源碼。 綜合來講,wepy的核心在于編譯環節,能夠將優雅簡潔的類似VUE風格的代碼,編譯成微信小程序所需要的繁雜代碼。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    碼神之路Netty-從零實現RPC框架課分享

    ——RPC(遠程過程調用)框架。它像人體的神經系統一樣,連接著各個服務器官,確保指令的準確傳達。Netty,作為 Java 領域當之無愧的網絡通信王者,其高性能、高并發的設計理念,使其成為構建現代 RPC 框架的不二選。本文將
    的頭像 發表于 02-13 11:38 ?45次閱讀

    LuatOS框架的使用(上)

    在資源受限的物聯網終端設備中,如何實現快速開發與穩定運行是關鍵挑戰。LuatOS框架通過將Lua語言與底層硬件抽象層深度融合,提供了一套簡潔高效的開發范式。本文將圍繞LuatOS框架的使用展開,從
    的頭像 發表于 01-27 19:38 ?156次閱讀
    LuatOS<b class='flag-5'>框架</b>的使用(上)

    簡單易用的嵌入式軟件程序框架

    1、程序框架的重要性 很多人尤其是初學者在寫代碼的時候往往都是想一點寫一點,最開始沒有一個整體的規劃,導致后面代碼越寫越亂,bug不斷。 最終代碼跑起來看似沒有問題(有可能也真的沒有問題),但是要加
    發表于 12-25 07:45

    閃燈程序的構建與調試

    在上一文章中我們成功了搭建了環境,那么接下來就用閃燈程序來認識一下編譯和調試工具吧!
    的頭像 發表于 11-05 14:52 ?4314次閱讀
    閃燈<b class='flag-5'>程序</b>的構建與調試

    PYQT 應用程序框架及開發工具

    大家好,本團隊此次分享的內容為開發過程中使用到的PYQT 應用程序框架及開發工具。 pYqt 是一個多平臺的 python 圖形用戶界面應用程序框架,由于其面向對象、 易擴展(可
    發表于 10-29 07:15

    NVIDIA TensorRT LLM 1.0推理框架正式上線

    TensorRT LLM 作為 NVIDIA 為大規模 LLM 推理打造的推理框架,核心目標是突破 NVIDIA 平臺上的推理性能瓶頸。為實現這一目標,其構建了多維度的核心實現路徑:一方面,針對需
    的頭像 發表于 10-21 11:04 ?1166次閱讀

    請問STM32如何移植Audio框架

    最近在學習音頻解碼,想用一下Audio框架。 1、這個該如何移植到自己創建的BSP并對接到device框架中?看了官方移植文檔沒有對沒有對該部分的描述。 2、我只想實現一個簡單的播放功能,只用一個DAC芯片(比如CS4344)是否就能達到我的需求?
    發表于 09-25 07:17

    ArkUI-X框架LogInterface使用指南

    ArkUI-X框架支持日志攔截能力,Android側提供原生接口,用于注入LogInterface接口,框架日志及ts日志通過該接口輸出,本文的核心內容是介紹如何在Android平臺上有效利用
    發表于 06-15 23:20

    零死角玩轉STM32——初級

    本文共4冊,由于資料內存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 《零死角玩轉 STM32》系列教程由初級、中級、高級、系統、四個部分組成,更適合初學者,步步為營
    發表于 05-21 13:48

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-Regmap子系統Regmap框架結構

    供了一些工具函數,用于解析和處理寄存器值,如位字段操作等。Regmap API:Regmap框架提供了一組API函數,用于在驅動程序中使用Regmap進行寄存器訪問。這些API函數包括
    發表于 04-17 13:59

    【技術案例】Qt 環境部署 - Ubuntu

    什么是Qt?Qt是一個跨平臺C++圖形用戶界面應用程序開發框架,可構建高性能的桌面、移動及Web應用程序,也可用于開發非GUI程序,比如控制臺工具和服務器。Qt是面向對象的
    的頭像 發表于 04-16 17:17 ?1927次閱讀
    【技術案例】Qt 環境部署 - Ubuntu <b class='flag-5'>篇</b>

    AI框架不牢,模型地動山搖

    把智能世界,建造在國產框架的地基上
    的頭像 發表于 04-07 13:55 ?1993次閱讀
    AI<b class='flag-5'>框架</b>不牢,模型地動山搖

    STM32如何移植Audio框架

    最近在學習音頻解碼,想用一下Audio框架。 1、這個該如何移植到自己創建的BSP并對接到device框架中?看了官方移植文檔沒有對沒有對該部分的描述。 2、我只想實現一個簡單的播放功能,只用一個DAC芯片(比如CS4344)是否就能達到我的需求?
    發表于 04-01 08:08

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-字符驅動字符驅動框架描述

    字符驅動框架的核心組件包括以下部分: 文件操作函數 (file_operations):字符驅動框架通過 file_operations結構體定義了一組函數指針,用于處理設備文件的各種操作,如打開
    發表于 03-17 14:05

    飛凌嵌入式ElfBoard ELF 1板卡-字符驅動字符驅動框架描述

    字符驅動框架的核心組件包括以下部分: 文件操作函數 (file_operations):字符驅動框架通過 file_operations結構體定義了一組函數指針,用于處理設備文件的各種操作,如打開
    發表于 03-14 09:45