文章來(lái)源于公眾號(hào):Vue中文社區(qū) 作者:性感超人
小程序云開(kāi)發(fā),這波更新有料!
云開(kāi)發(fā)(Tencent Cloud Base)
做前端的同學(xué)基本上或多或少都接觸過(guò) 小程序 ,但是,接觸過(guò)小程序的同學(xué)不一定接觸過(guò)云開(kāi)發(fā)
普及一下
云開(kāi)發(fā)是一種典型的 Serverless
架構(gòu)的實(shí)現(xiàn)方式,這里可能還有同學(xué)對(duì) Serverless
不熟悉
我們?cè)侔堰@個(gè)詞拆開(kāi),Server(服務(wù)器) less(不重要),可以理解為“無(wú)服務(wù)器”
試想一下,大多數(shù)公司和開(kāi)發(fā)者在開(kāi)發(fā)應(yīng)用時(shí)和部署服務(wù)時(shí),無(wú)論是選擇公有云還是自建數(shù)據(jù)中心,都需要提前考慮服務(wù)器、存儲(chǔ)和數(shù)據(jù)庫(kù)等需求,并且需要花費(fèi)時(shí)間精力在部署應(yīng)用、依賴(lài)。那么是否有一種架構(gòu)可以幫我們節(jié)省這部分的成本呢?有,就是我們的 Serverless(無(wú)服務(wù)器)架構(gòu)
具體來(lái)說(shuō),Serverless
架構(gòu)是指由第三方服務(wù)商負(fù)責(zé)后端基礎(chǔ)結(jié)構(gòu)的維護(hù),以服務(wù)的方式為開(kāi)發(fā)者提供如數(shù)據(jù)庫(kù)、消息、身份驗(yàn)證等功能,架構(gòu)的目的就是要讓開(kāi)發(fā)人員只需要專(zhuān)注業(yè)務(wù)本身
現(xiàn)在我們?cè)诨氐叫〕绦蛟崎_(kāi)發(fā)本身,云開(kāi)發(fā)官方封裝了云函數(shù)、存儲(chǔ)、云數(shù)據(jù)庫(kù)的能力,一個(gè)函數(shù)調(diào)用,直接就實(shí)現(xiàn)了鑒權(quán)、文件上傳、更新數(shù)據(jù)等最最常用的功能
兩個(gè)字來(lái)說(shuō),就是真香
我們以一個(gè)更具體的功能來(lái)說(shuō)
傳統(tǒng)模式下我們想要調(diào)用微信登錄,需要將 code 傳給服務(wù)端,服務(wù)端將 code 拿去微信服務(wù)換取用戶(hù)信息,自做存儲(chǔ),更新
而使用云開(kāi)發(fā)時(shí),我們只要調(diào)用一個(gè)api
,沒(méi)看錯(cuò),就是一個(gè)api
,一行代碼完事
我們看下圖對(duì)比一下
跨賬號(hào)環(huán)境共享
小程序 的云開(kāi)發(fā)一直都是一個(gè)appid
對(duì)應(yīng)一個(gè)獨(dú)立云環(huán)境,這個(gè)怎么理解呢?
還是以實(shí)際場(chǎng)景舉例,比如你有A,B,C三個(gè)小程序產(chǎn)品,你的某些數(shù)據(jù)可能需要共享的,如用戶(hù)信息共享,商品信息共享
這個(gè)在發(fā)文前小程序云開(kāi)發(fā)是沒(méi)有這個(gè)能力處理的,所以想要實(shí)現(xiàn)要么就是自建共享數(shù)據(jù)服務(wù),要么就是直接棄用云服務(wù)
好在今天它來(lái)了
云開(kāi)發(fā)支持跨賬號(hào)環(huán)境(資源)共享,也就是一個(gè)小程序 的云開(kāi)發(fā)資源可以授權(quán)給其他小程序 / 公眾號(hào)使用
開(kāi)通方式也很簡(jiǎn)單,只需要在云開(kāi)發(fā)的后臺(tái)進(jìn)行給相應(yīng)的小程序 / 公眾號(hào)授權(quán)即可,如下圖
公眾號(hào)環(huán)境打通
細(xì)心的同學(xué)可能已經(jīng)發(fā)現(xiàn)了,上面有提到公眾號(hào)
What? 公眾號(hào)也有云服務(wù)了嗎?
是滴,這次更新云開(kāi)發(fā)打通了公眾號(hào)體系,公眾號(hào)只要小程序給開(kāi)通授權(quán),再引入云開(kāi)發(fā)的Web sdk
就可以直接使用小程序的云服務(wù)
對(duì)我們來(lái)說(shuō)有什么好處
- 資源復(fù)用
云開(kāi)發(fā)小程序所有資源都可以在web端復(fù)用
- 能力復(fù)用
云開(kāi)發(fā)小程序所有能力都可以在web端復(fù)用(如你花兩個(gè)星期寫(xiě)好的一個(gè)全是bug的云函數(shù))
更直觀的感受,比如我們之前 jssdk 的簽名方式
wx.config({
appId: '公眾號(hào) AppID', // 必填,公眾號(hào)的唯一標(biāo)識(shí)
timestamp: res.timestamp + '', // 必填,生成簽名的時(shí)間戳
nonceStr: res.nonceStr, // 必填,生成簽名的隨機(jī)串
signature: res.signature,// 必填,簽名
jsApiList: ['JS API 名'] // 必填,需要使用的JS接口列表
})
現(xiàn)在我們只需要這樣
const res = await cloud.getJSSDKSignature({
url: '要簽名的網(wǎng)頁(yè) URL'
})
靜態(tài)網(wǎng)站托管
這個(gè)詞相信大家已經(jīng)很熟了
當(dāng)我們想布署一個(gè)靜態(tài)的網(wǎng)頁(yè)應(yīng)用,博客,手頭上暫時(shí)又沒(méi)有域名,服務(wù)器的時(shí)候,我們可以將靜態(tài)網(wǎng)站托管到第三方平臺(tái),比如同性交友github
那么小程序云開(kāi)發(fā)的靜態(tài)網(wǎng)站托管跟其它的有什么不同嗎?
原則上沒(méi)什么不同,但作為微信生態(tài)的一部分,在微信中有著天然優(yōu)勢(shì)
比如:
- 小程序 webview
小程序不用配置業(yè)務(wù)域名即可在打開(kāi)云開(kāi)發(fā)靜態(tài)網(wǎng)站托管的域名(僅支持能夠使用標(biāo)簽的小程序)
- 免鑒權(quán)直接打開(kāi)小程序
非個(gè)人主體的認(rèn)證的小程序,使用靜態(tài)網(wǎng)站托管的網(wǎng)頁(yè),可以免鑒權(quán)跳轉(zhuǎn)任意合法合規(guī)的小程序
寫(xiě)到這里,帥編突然邪魅一笑,是不是可以用靜態(tài)網(wǎng)站托管做一個(gè)微信小程序的應(yīng)用分發(fā),然后躺著掙流量錢(qián)
最后
雖然吹了一波云開(kāi)發(fā),但還是得給個(gè)中肯建議
個(gè)人項(xiàng)目、功能簡(jiǎn)單的小程序可以嘗試使用,那是真香
規(guī)模稍大以及企業(yè)級(jí)項(xiàng)目現(xiàn)階段不建議完全使用,可按需混合使用
以上就是W3Cschool編程獅
關(guān)于小程序云開(kāi)發(fā)支持公眾號(hào)網(wǎng)頁(yè)開(kāi)發(fā)了的相關(guān)介紹了,希望對(duì)大家有所幫助。