面試官:說說你對微信小程序的理解?優(yōu)缺點?
本文轉(zhuǎn)載自微信公眾號「JS每日一題」,作者灰灰。轉(zhuǎn)載本文請聯(lián)系JS每日一題公眾號。
一、是什么
2017年,微信正式推出了小程序,允許外部開發(fā)者在微信內(nèi)部運行自己的代碼,開展業(yè)務(wù)
截至目前,小程序已經(jīng)成為國內(nèi)前端的一個重要業(yè)務(wù),跟 Web 和手機 App 有著同等的重要性
小程序是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應(yīng)用
也體現(xiàn)了“用完即走”的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問題。應(yīng)用將無處不在,隨時可用,但又無需安裝卸載
注意的是,除了微信小程序,還有百度小程序、微信小程序、支付寶小程序、抖音小程序,都是每個平臺自己開發(fā)的,都是有針對性平臺的應(yīng)用程序
二、背景
程序并憑空冒出來的?個概念,當(dāng)微信中的 WebView 逐漸成為移動 Web的?個重要??時,微信就有相關(guān)的 JS-SDK
JS-SDK 解決了移動??能?不?的問題,通過暴露微信的接?使得 Web 開發(fā)者能夠擁有更多的能?,然?在更多的能?之外,JS-SDK的模式并沒有解決使?移動??遇到的體驗不良的問題
因此需要設(shè)計?個?較好的系統(tǒng),使得所有開發(fā)者在微信中都能獲得?較好的體驗:
- 快速的加載
- 更強?的能?
- 原?的體驗
- 易?且安全的微信數(shù)據(jù)開放
- 效簡單的開發(fā)
這些是JS-SDK做不到的,需要設(shè)計一個全新的小程序系統(tǒng)
對于小程序的開發(fā),提供一個簡單、高效的應(yīng)用開發(fā)框架和豐富的組件及API,幫助開發(fā)者開發(fā)出具有原生體驗的服務(wù)
其中相比H5,小程序與其的區(qū)別有如下:
- 運?環(huán)境:?程序基于瀏覽器內(nèi)核重構(gòu)的內(nèi)置解析器
- 系統(tǒng)權(quán)限:?程序能獲得更多的系統(tǒng)權(quán)限,如?絡(luò)通信狀態(tài)、數(shù)據(jù)緩存能?等
- 渲染機制:?程序的邏輯層和渲染層是分開的
小程序可以視為只能用微信打開和瀏覽的H5,小程序和網(wǎng)頁的技術(shù)模型是一樣的,用到的 JavaScript 語言和 CSS 樣式也是一樣的,只是網(wǎng)頁的 HTML 標(biāo)簽被稍微修改成了 WXML 標(biāo)簽
因此可以說,小程序頁面本質(zhì)上就是網(wǎng)頁
其中關(guān)于微信小程序的實現(xiàn)原理,我們在后面的文章講到
三、優(yōu)缺點
優(yōu)點:
- 隨搜隨用,用完即走:使得小程序可以代替許多APP,或是做APP的整體嫁接,或是作為閹割版功能的承載體
- 流量大,易接受:小程序借助自身平臺更加容易引入更多的流量
- 安全
- 開發(fā)門檻低
- 降低兼容性限制
缺點:
- 用戶留存:及相關(guān)數(shù)據(jù)顯示,小程序的平均次日留存在13%左右,但是雙周留存驟降到僅有1%
- 體積限制:微信小程序只有2M的大小,這樣導(dǎo)致無法開發(fā)大型一些的小程序
- 受控微信:比起APP,尤其是安卓版的高自由度,小程序要面對很多來自微信的限制,從功能接口,甚至到類別內(nèi)容,都要接受微信的管控
參考文獻(xiàn)
https://developers.weixin.qq.com/miniprogram/dev/framework/
https://www.zhihu.com/question/263816362