微信小程序腳手架-環(huán)境搭建02

WeChat Template

一套基于SpringBoot & Shiro 以及 Uni-app構(gòu)建的微信小程序腳手架

開(kāi)源地址: https://github.com/TyCoding/wechat-template 歡迎Star挤悉、Fork支持作者。

前言

第一次接觸微信小程序,你可能通過(guò)一些教程了解到很多開(kāi)發(fā)微信小程序的第三方框架或者是微信原生API。而從我一個(gè)Java后端開(kāi)發(fā)者的角度而言捣炬,如果想要快速入門(mén)微信小程序開(kāi)發(fā)稿械,去研究微信原生的API文檔可能不太合適窝撵。

初學(xué)Java Web階段赐劣,我也接觸到了原生JS開(kāi)發(fā)咐汞;后來(lái)我又順著教程學(xué)習(xí)了JQuery,才發(fā)現(xiàn)JQuery比原生JS方便太多了贱傀;之后隨著Java Web前端項(xiàng)目的逐漸復(fù)雜剖淀,例如分頁(yè)、Modal俄认、表格數(shù)據(jù)渲染等靠JQuery依然相當(dāng)復(fù)雜糊探,即使之后又學(xué)到了JSP、Thymeleaf數(shù)據(jù)渲染依然感覺(jué)很不方便儡炼。開(kāi)發(fā)前端除了要學(xué)習(xí)UI框架的使用,還需要學(xué)習(xí)一套JavaScript框架的使用以便我們能快速開(kāi)發(fā)項(xiàng)目。

于是后來(lái)我接觸了Vue税迷,了解了雙向綁定的概念才知道用Vue渲染前端數(shù)據(jù)是多么的方便快捷辩诞。

那么今天我要介紹的Uni-app正是基于Vue.js開(kāi)發(fā)的前端應(yīng)用框架。因此蝎抽,如果你已經(jīng)熟悉了Vue框架疲吸,那么學(xué)習(xí)使用Uni-app開(kāi)發(fā)微信小程序?qū)⒎浅7奖愦型帧F渲形⑿判〕绦虻捻?yè)面全部使用的Vue組件,Vue的語(yǔ)法幾乎都適用(當(dāng)然也有不適用的例如:頁(yè)面的生命周期鉤子函數(shù)等)。所以本系列教程前端將全部使用Vue語(yǔ)法分析項(xiàng)目實(shí)現(xiàn)邏輯,如果大家有不熟悉的請(qǐng)仔細(xì)閱讀以下文檔:

環(huán)境搭建

作為一個(gè)后端程序員,我相信大家已經(jīng)可以熟練使用IDEA搭建SpringBoot框架開(kāi)發(fā)環(huán)境了蘸泻,這里不再過(guò)多贅述鞋吉。

請(qǐng)?jiān)谏掀谖臋n WeChat Template-01項(xiàng)目介紹 中仔細(xì)閱讀我的開(kāi)發(fā)軟件版本鸦做,避免出現(xiàn)其他問(wèn)題請(qǐng)盡量保持軟件版本和我文檔中介紹的相同

本文的重點(diǎn)將放在如何搭建Uni-app的開(kāi)發(fā)環(huán)境坯辩。


首先請(qǐng)仔細(xì)閱讀 Uni-app官方文檔: https://uniapp.dcloud.io/quickstart

安裝HBuilder

也許你會(huì)像我一樣迷惑崩侠,不是開(kāi)發(fā)微信小程序嗎漆魔?為什么非要再安裝一個(gè)HBuilder啊却音?他好用嗎改抡?

但你沒(méi)得選擇,Uni-app和HBuilder是捆綁在一起的系瓢,使用Uni-app寫(xiě)的Vue頁(yè)面必須使用HBuilder才能編譯阿纤。選擇通過(guò)HBuilder將項(xiàng)目編譯到微信開(kāi)發(fā)者工具,項(xiàng)目編譯后將自動(dòng)打開(kāi)微信開(kāi)發(fā)者工具運(yùn)行項(xiàng)目夷陋,由此就不需要用微信開(kāi)發(fā)者工具編輯代碼了欠拾,僅作為一個(gè)手機(jī)模擬器、頁(yè)面調(diào)試工具骗绕。

HBuilder下載地址:https://www.dcloud.io/hbuilderx.html

微信開(kāi)發(fā)者工具

官方下載地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

需要注意的是藐窄,開(kāi)發(fā)微信小程序首先需要在 微信公眾平臺(tái) https://mp.weixin.qq.com/ 注意一個(gè)開(kāi)發(fā)者賬戶(hù):

https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN&token=

image-20200611152850139

選擇 小程序 。上面的四種賬號(hào)類(lèi)型需要使用不同的郵箱注冊(cè)酬土。

image-20200611153021835

后續(xù)填寫(xiě)信息便可以注冊(cè)成功了荆忍。

注冊(cè)成功后登錄賬戶(hù)在右側(cè)找到 開(kāi)發(fā) ,便可以看到自己的AppID撤缴,這是我們使用微信開(kāi)發(fā)者工具必備的東西:

image-20200611153557185

以上注冊(cè)流程結(jié)束刹枉。但需要注意的是,新注冊(cè)的微信小程序賬戶(hù)需要關(guān)聯(lián)一個(gè)主體(管理員)微信賬號(hào)屈呕,可以用自己的微信賬號(hào)綁定這個(gè)小程序微宝,下次登錄直接用微信賬號(hào)掃描登錄二維碼即可直接登錄小程序管理平臺(tái)。

安裝了微信開(kāi)發(fā)者工具后打開(kāi)虎眨,需要掃描二維碼登錄才能使用(用剛才綁定了小程序賬戶(hù)的微信號(hào)):

image-20200611154137687
image-20200611154250759

到此為止芥吟,我們就完成了微信開(kāi)發(fā)者工具的全部安裝侦铜。下面講解如何配合HBuilder使用。

環(huán)境配置

按照uni-app官方文檔:https://uniapp.dcloud.io/quickstart 所寫(xiě)钟鸵,我們先創(chuàng)建一個(gè)uni-app項(xiàng)目:

image-20200611154826437

選擇創(chuàng)建uni-app項(xiàng)目钉稍,并選擇登錄模板(這里僅是示例,不同的模板內(nèi)置了不同功能的小程序源碼棺耍,其中登錄模板應(yīng)該還算簡(jiǎn)潔)贡未。注意不要選擇啟用uniCloud,這個(gè)和微信開(kāi)發(fā)者工具創(chuàng)建項(xiàng)目時(shí)的云服務(wù)器概念類(lèi)似蒙袍,不建議使用俊卤,他的目的的簡(jiǎn)化開(kāi)發(fā)流程,消除前后端害幅、運(yùn)維的區(qū)別消恍。而作為一個(gè)后端開(kāi)發(fā)者,我們能獨(dú)立開(kāi)發(fā)一套后端項(xiàng)目必須再學(xué)習(xí) cloud 提供的云函數(shù)以现。

創(chuàng)建的uni-app-login項(xiàng)目有以下目錄結(jié)構(gòu):

image-20200611155507606

在開(kāi)始運(yùn)行小程序之前狠怨,需要配置 微信開(kāi)發(fā)者工具 -> 設(shè)置 -> 安全設(shè)置 ,啟用服務(wù)端口

image-20200611155652394

上面介紹了開(kāi)發(fā)微信小程序需要使用 App ID邑遏,在新創(chuàng)建的項(xiàng)目目錄結(jié)構(gòu)中找到 uni-app-login -> mainfest.json佣赖,配置微信小程序App ID:

image-20200611160200643

接下來(lái)打開(kāi)HBuilder,找到 HBuilderX -> 運(yùn)行 -> 運(yùn)行到小程序模擬器 -> 微信開(kāi)發(fā)者工具

image-20200611155830709

然后记盒,HBuilder編譯后將自動(dòng)打開(kāi)微信開(kāi)發(fā)者工具并運(yùn)行編譯后的微信小程序:

image-20200611160842063

到此為止憎蛤,環(huán)境配置已經(jīng)結(jié)束了。

插件安裝

Uni-app本身提供的UI和API可能并不能滿(mǎn)足我們?nèi)粘i_(kāi)發(fā)的需求纪吮,Uni-app也提供了插件市場(chǎng):https://ext.dcloud.net.cn/ 俩檬,在里面可以找到很多第三方插件。那么如何將插件安裝到我們的項(xiàng)目中呢碾盟?

  1. 方式一:特別簡(jiǎn)單豆胸,在插件詳情頁(yè)面右側(cè)點(diǎn)擊使用HBuilderX導(dǎo)入插件即可將插件自動(dòng)下載到當(dāng)前項(xiàng)目中
image-20200611174123878

HBuilderX上將彈出:

image-20200611174233805

點(diǎn)擊確定后,插件就被安裝在本項(xiàng)目中:

image-20200611174327251

安裝其他插件也會(huì)如此安裝到項(xiàng)目根目錄js_sdk文件夾中巷疼,為了規(guī)范起見(jiàn)晚胡,我建議大家把第三發(fā)插件都移動(dòng)到components文件夾內(nèi):

image-20200611174517593

文件夾可以隨意命名,因?yàn)楹罄m(xù)需要單獨(dú)import這個(gè)js才能聲明對(duì)象嚼沿。注意區(qū)別文中提到的easycom模式估盘,這是JS插件并不是UI組件,是需要單獨(dú)import的骡尽。

  1. 方式二:直接在GitHub下載該插件的源碼文件遣妥,手動(dòng)將文件夾復(fù)制到自己項(xiàng)目的components文件夾內(nèi),其他的和上面介紹的相同攀细。

Tips

除了上面介紹的基礎(chǔ)環(huán)境配置箫踩,開(kāi)發(fā)一套小程序還得使用一些第三方j(luò)s庫(kù)爱态,下面是我個(gè)人不斷挑選后覺(jué)得比較好用的。

UI

雖然Uni-app內(nèi)置了很多UI組件了境钟,但是并不豐富锦担,于是我在Github上搜索了uni-app第三方的UI庫(kù),選擇了 ThorUI 慨削。(實(shí)際上第三方的UI庫(kù)并不多且star數(shù)量不太高)洞渔,所以學(xué)習(xí)此套教程,你需要先熟悉下 ThorUI 文檔:

注意

如果你仔細(xì)查閱了uni-app的文檔或ThorUI的文檔會(huì)發(fā)現(xiàn)Uni-app文檔中 https://uniapp.dcloud.io/collocation/pages?id=easycom 介紹的一個(gè)參數(shù)配置:

image-20200611162444379

easycom模式支持將存放在components文件夾下的第三方組件自動(dòng)注冊(cè)到App內(nèi)缚态,也就是我們無(wú)需再在App.vueimport注冊(cè)組件了磁椒。

但是: 并不是所有的第三方組件都適合 easycom模式的,所以你在選擇第三方UI庫(kù)時(shí)需要看介紹是否支持easycom模式玫芦。(顯然ThorUI是支持這種模式的)浆熔。


需要注意的是,ThorUI官方源碼倉(cāng)庫(kù):https://github.com/dingyong0214/ThorUI-uniapp 其實(shí)是一個(gè)使用了ThorUI組件的Uni-app項(xiàng)目桥帆,ThorUI的源碼是在該項(xiàng)目的components文件夾下的医增。那么前面介紹的使用HBuilder創(chuàng)建項(xiàng)目時(shí)的模板也可以替換為T(mén)horUI的,好處就是作者已經(jīng)幫我們配置好了項(xiàng)目环葵,直接使用即可调窍。

注意

雖然可以使用ThorUI提供的模板(HBuilder直接打開(kāi)運(yùn)行項(xiàng)目)宝冕,但我并不建議直接使用其中封裝的JS方法张遭,因?yàn)楸卷?xiàng)目的目的是要讓你學(xué)會(huì)自己封裝一套小程序腳手架,ThorUI僅作為一個(gè)前端項(xiàng)目他封裝的JS包括Request地梨、Vuex菊卷、Login我覺(jué)得是不適合與Java后端交互的,請(qǐng)大家在后續(xù)文章中仔細(xì)閱讀我的項(xiàng)目設(shè)計(jì)再做比較宝剖。

Router

如果你使用過(guò)Vue開(kāi)發(fā)Web端單頁(yè)面項(xiàng)目洁闰,你應(yīng)該會(huì)知道頁(yè)面之間的路由是非常重要的。那么本項(xiàng)目腳手架也將封裝一套R(shí)outer路由万细,而Uni-app本身提供的頁(yè)面路由我覺(jué)得并不友好(特別是對(duì)與我們習(xí)慣了Vue開(kāi)發(fā)的Java后端程序員)扑眉。

在前后端分離的項(xiàng)目中Router至少需要實(shí)現(xiàn):

  1. 全局的路由封裝,以及各個(gè)頁(yè)面的路由配置
  2. 路由守衛(wèi)赖钞,要攔截監(jiān)聽(tīng)頁(yè)面發(fā)生路由時(shí)當(dāng)前賬戶(hù)登錄狀態(tài)
  3. 在路由守衛(wèi)中要判斷當(dāng)前緩存中的Token是否失效腰素,UserInfo信息是否被緩存(沒(méi)有就異步獲取UserInfo)

在Vue項(xiàng)目中,官方推薦的 vue-router

以上分析雪营,我在Uni-app插件市場(chǎng)中找到一個(gè)非常形似vue-router的插件:uni-simple-router弓千,官方文檔:http://hhyang.cn/ 。這個(gè)插件提供的API幾乎和vue-router中的API相同献起,更是減輕了我們的學(xué)習(xí)成本洋访。

后續(xù)我將介紹如何使用這個(gè)插件封裝頁(yè)面全局路由镣陕。

Request

除了上面介紹的兩個(gè)插件,在前后端分離的項(xiàng)目中最重要的是JS的異步請(qǐng)求姻政,那么必不可少需要能夠發(fā)送異步請(qǐng)求的API呆抑,Uni-app和微信官方都提供了相應(yīng)的Request API,但我作為Java后端還是覺(jué)得他們提供的很不適合于Java后端交互扶歪,這里我找到了一個(gè)認(rèn)為比較好用的插件:luch-request

luch-request官方文檔:https://quanzhan.co/luch-request/

在前后端分離的項(xiàng)目中Request至少需要實(shí)現(xiàn):

  1. 全局Request請(qǐng)求封裝理肺,以便能處理請(qǐng)求Token信息
  2. 全局Request應(yīng)該能夠配置interceptor,包括Request interceptorResponse interceptor
  3. interceptor中能夠自定義鑒權(quán)善镰、身份認(rèn)證等配置
  4. 應(yīng)該按照Controller接口命名規(guī)則配置與之相對(duì)應(yīng)的api接口方法妹萨,方法中包含Request MethodRequest Params
  5. 前后端分離項(xiàng)目中Header應(yīng)該包含Authorization Token,并且HeaderContent-type='application/json'炫欺,前后端傳遞的都是JSON化的字符串

后續(xù)我將講解如何使用這個(gè)插件封裝全局Request乎完。

交流

QQGroup:671017003

WeChatGroup: 關(guān)注公眾號(hào)查看

聯(lián)系

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市品洛,隨后出現(xiàn)的幾起案子树姨,更是在濱河造成了極大的恐慌,老刑警劉巖桥状,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帽揪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡辅斟,警方通過(guò)查閱死者的電腦和手機(jī)转晰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)士飒,“玉大人查邢,你說(shuō)我怎么就攤上這事〗湍唬” “怎么了扰藕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)芳撒。 經(jīng)常有香客問(wèn)我邓深,道長(zhǎng),這世上最難降的妖魔是什么笔刹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任芥备,我火速辦了婚禮,結(jié)果婚禮上徘熔,老公的妹妹穿的比我還像新娘门躯。我一直安慰自己,他們只是感情好酷师,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布讶凉。 她就那樣靜靜地躺著染乌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪懂讯。 梳的紋絲不亂的頭發(fā)上荷憋,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音褐望,去河邊找鬼勒庄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瘫里,可吹牛的內(nèi)容都是我干的实蔽。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谨读,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼局装!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起劳殖,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤铐尚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后哆姻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體宣增,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年矛缨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了爹脾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡劳景,死狀恐怖誉简,靈堂內(nèi)的尸體忽然破棺而出碉就,到底是詐尸還是另有隱情盟广,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布瓮钥,位于F島的核電站筋量,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏碉熄。R本人自食惡果不足惜桨武,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锈津。 院中可真熱鬧呀酸,春花似錦、人聲如沸琼梆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至错览,卻和暖如春纫雁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背倾哺。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工轧邪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人羞海。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓忌愚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親却邓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子菜循,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345