微信小程序 第一章

能夠使用laravel中間件檢查用戶權(quán)限

  • 在中間件中判斷


    微信小程序_01521.png

    微信小程序_01523.png

    創(chuàng)建權(quán)限的忽略文件

  • 對(duì)應(yīng)用戶就對(duì)應(yīng)有那些菜單


    微信小程序_01540.png
  • 異常的創(chuàng)建


    微信小程序_01550.png

    微信小程序_01552.png

小程序介紹

  • 小程序是什么
    微信小程序,簡(jiǎn)稱小程序,英文名 Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一下即可打開(kāi)應(yīng)用。也體現(xiàn)了“用完即走”的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問(wèn)題。應(yīng)用將無(wú)處不在,隨時(shí)可用,但又無(wú)需安裝卸載。對(duì)于開(kāi)發(fā)者而言,小程序開(kāi)發(fā)門(mén)檻相對(duì)較低,難度不及APP,能夠滿足簡(jiǎn)單的基礎(chǔ)應(yīng)用,適合生活服務(wù)類線下商鋪以及非剛需低頻應(yīng)用的轉(zhuǎn)換


    微信小程序_01900.png
https://developers.weixin.qq.com/miniprogram/dev/
  • 發(fā)展歷史

    • 2016年1月11日,微信之父張小龍公布微信小程序
    • 2016年9月21日,微信小程序正式開(kāi)啟內(nèi)測(cè)
    • 2017年1月9日,第一批小程序正式上線
    • 2017年12月28日,微信更新的 6.6.1 版開(kāi)放了小游戲,微信啟動(dòng)頁(yè)面推薦了小游戲《跳一跳》,可以通過(guò)小程序找到已經(jīng)玩到小游戲
    • 2018年1月25日,微信團(tuán)隊(duì)在“微信公眾平臺(tái)”發(fā)布公告稱,“從移動(dòng)應(yīng)用分享至微信的小程序頁(yè)面,用戶訪問(wèn)時(shí)支持打開(kāi)來(lái)源應(yīng)用。
  • 如何理解小程序

    • 不是HTML5
    • 即用即走,隨手可得
    • 擁有離線能力
    • 一次開(kāi)發(fā),多端兼容
    • 優(yōu)美的操作體驗(yàn)
    • 基于微信客戶端中
  • 小程序與傳統(tǒng)App區(qū)別


    微信小程序_011191.png

    微信小程序_011192.png
    • 小程序
      局限性:必須依賴于微信,不能獨(dú)立運(yùn)行。
      優(yōu)勢(shì):不需要考虛兼容問(wèn)題,安裝的問(wèn)題,開(kāi)發(fā)難度小。

    • 傳統(tǒng)app:
      優(yōu)勢(shì):獨(dú)立運(yùn)行,不需要依賴于誰(shuí),可以適合所有的業(yè)務(wù)需求
      局限性:需要用戶安裝,解決適配(開(kāi)發(fā)兼容問(wèn)題),開(kāi)發(fā)難度大

  • 誰(shuí)可以注冊(cè)開(kāi)發(fā)小程序


    微信小程序_011324.png
  • 小程序框架結(jié)構(gòu)


    微信小程序_011338.png

申請(qǐng)賬號(hào)與登錄設(shè)置

  • 小程序體驗(yàn)DEMO


    微信小程序_011367.png

    微信小程序_011369.png
  • 申請(qǐng)賬號(hào)


    微信小程序_011452.png

    微信小程序_011464.png

    微信小程序_011479.png
https://mp.weixin.qq.com/

選擇小程序進(jìn)行安裝
填寫(xiě)相關(guān)資料完成申請(qǐng)流程

  • 登錄


    微信小程序_011488.png

    微信小程序_011489.png

    微信小程序_011523.png

    微信小程序_011525.png

    進(jìn)行二次驗(yàn)證微信掃碼驗(yàn)證。
    填寫(xiě)注冊(cè)時(shí)的郵箱和密碼進(jìn)行登錄功能

  • 獲取開(kāi)發(fā)appid


    微信小程序_011543.png

    微信小程序_011545.png

    有此appid就可以進(jìn)行小程序的開(kāi)發(fā)工作。

開(kāi)發(fā)工具

  • 概覽
    為了幫助開(kāi)發(fā)者簡(jiǎn)單和高效地開(kāi)發(fā)和調(diào)試微信小程序,騰訊在原有的公眾號(hào)網(wǎng)頁(yè)調(diào)試工具的基礎(chǔ)上,推出了全新的微信開(kāi)發(fā)者工具,集成了公眾號(hào)網(wǎng)頁(yè)調(diào)試和小程序調(diào)試兩種開(kāi)發(fā)模式。

  • 下載安裝


    微信小程序_011735.png

    微信小程序_011776.png

    微信小程序_011873.png

    微信小程序_011904.png
 http://t.cn/RrKI5a3 
 https://code.visualstudio.com/

在windows下面安裝的方式和其他的普通
軟件安裝方式一致,一路下一步即可。
下載vscode編輯器
vscode安裝成功后,開(kāi)發(fā)小程序需要安裝如下的兩個(gè)插件

  • 第一個(gè)小程序helloworld


    微信小程序_012129.png

    微信小程序_012151.png

    微信小程序_012153.png

    如果沒(méi)有注冊(cè)賬號(hào),我們可以用測(cè)試號(hào)來(lái)進(jìn)行開(kāi)發(fā)
    當(dāng)然如果注冊(cè)過(guò),有了appid,則用我們注冊(cè)過(guò)的
    打開(kāi)官方開(kāi)發(fā)工具,掃一下,后選擇小程序

https://developers.weixin.qq.com/weloginpage?redirect_url=%2Fsandbox

小程序的文件結(jié)構(gòu)及配置

  • 文件結(jié)構(gòu)


    微信小程序_012599.png

    通過(guò)開(kāi)發(fā)者工具創(chuàng)建了【建立普通快速啟動(dòng)模板】項(xiàng)目。這個(gè)項(xiàng)目里邊生成了不同類型的文件: 紅色必須不可缺少的文件

    • json 后綴的 JSON 配置文件
    • wxml 后綴的 WXML 模板文件類html
    • wxss 后綴的 WXSS 樣式文件類css
    • js 后綴的 JS 腳本邏輯文件 業(yè)務(wù)代碼所書(shū)寫(xiě)的區(qū)域
      小程序包含一個(gè)描述整體程序的 app 和多個(gè)描述各自頁(yè)面的 pages。
      一個(gè)小程序主體部分由三個(gè)文件組成,必須放在項(xiàng)目的根目錄,如下:
    • app.js
      必填;作用:小程序邏輯
    • app.json
      必填;作用:小程序公共設(shè)置
    • app.wxss
      否;作用:小程序公共樣式表
      一個(gè)小程序page頁(yè)面由四個(gè)文件組成,分別是:
      文件類型;必填;作用
    • js
      必填;頁(yè)面邏輯
    • wxml
      必填;頁(yè)面結(jié)構(gòu)
    • wxss
      否;頁(yè)面樣式表
    • js
      否;頁(yè)面配置
      注意:為了方便開(kāi)發(fā)者減少配置項(xiàng),描述頁(yè)面的四個(gè)文件必須具有相同的路徑與文件名
  • 小程序配置app.json


    微信小程序_012897.png
https://developers.weixin.qq.com/miniprogram/dev/framework/config.html

app.json 文件用來(lái)對(duì)微信小程序進(jìn)行全局配置,決定頁(yè)面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間、設(shè)置多 tab 底部或頂部菜單等。
app.json中不能添加任何注釋,key和value必須用雙引號(hào)引起來(lái),否則會(huì)報(bào)錯(cuò)。

  • app.json 配置項(xiàng)列表

    • pages
      String Array;必填; 設(shè)置頁(yè)面路徑
    • window
      Object;否; 設(shè)置默認(rèn)頁(yè)面的窗口表現(xiàn)
    • tabBar
      Object;否; 設(shè)置底部 tab 的表現(xiàn)
    • networkTimeout
      Object;否; 設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間
    • debug
      Boolean;否; 設(shè)置是否開(kāi)啟 debug 模式
    • window
      Object;否; 設(shè)置默認(rèn)頁(yè)面的窗口表現(xiàn)
  • pages


    微信小程序_013232.png

    接受一個(gè)數(shù)組,每一項(xiàng)都是字符串,來(lái)指定小程序由哪些頁(yè)面組成。每一項(xiàng)代表對(duì)應(yīng)頁(yè)面的【路徑+目錄名+文件名(不包含后綴名)】信息,數(shù)組的第一項(xiàng)代表小程序的初始頁(yè)面(首頁(yè))。小程序中新增/減少頁(yè)面,都需要對(duì) pages 數(shù)組進(jìn)行修改。
    注:數(shù)組的第一項(xiàng)為小程序初始頁(yè)面

  • window

https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#

全局配置;用于設(shè)置小程序的狀態(tài)欄、導(dǎo)航條、標(biāo)題、窗口背景色??梢酝ㄟ^(guò) tabBar 配置項(xiàng)指定 tab 欄的表現(xiàn),以及 tab 切換時(shí)顯示的對(duì)應(yīng)頁(yè)面。

生命周期

  • onLoad(Object query)
    頁(yè)面加載時(shí)觸發(fā)。一個(gè)頁(yè)面只會(huì)調(diào)用一次,可以在 onLoad 的參數(shù)中獲取打開(kāi)當(dāng)前頁(yè)面路徑中的參數(shù)。

  • onShow()
    頁(yè)面顯示/切入前臺(tái)時(shí)觸發(fā)。

  • onReady()
    頁(yè)面初次渲染完成時(shí)觸發(fā)。一個(gè)頁(yè)面只會(huì)調(diào)用一次,代表頁(yè)面已經(jīng)準(zhǔn)備妥當(dāng),可以和視圖層進(jìn)行交互。

注意:對(duì)界面內(nèi)容進(jìn)行設(shè)置的 API 如wx.setNavigationBarTitle,請(qǐng)?jiān)趏nReady之后進(jìn)行。詳見(jiàn)生命周期

  • onHide()
    頁(yè)面隱藏/切入后臺(tái)時(shí)觸發(fā)。 如 navigateTo 或底部 tab 切換到其他頁(yè)面,小程序切入后臺(tái)等。

  • onUnload()
    頁(yè)面卸載時(shí)觸發(fā)。如redirectTo或navigateBack到其他頁(yè)面時(shí)。

視圖結(jié)構(gòu) wxml

  • 概述
    從事過(guò)網(wǎng)頁(yè)編程的人知道,網(wǎng)頁(yè)編程采用的是 HTML + CSS + JS 這樣的組合,其中 HTML 是用來(lái)描述當(dāng)前這個(gè)頁(yè)面的結(jié)構(gòu),CSS 用來(lái)描述頁(yè)面的樣子,JS 通常是用來(lái)處理這個(gè)頁(yè)面和用戶的交互。同樣道理,在小程序中也有同樣的角色,其中 WXML 充當(dāng)?shù)木褪穷愃?HTML 的角色。

  • WXML和HTML不同點(diǎn):

    • 標(biāo)簽名字有點(diǎn)不一樣
    • 多了一些 wx:if 這樣的屬性以及 {{ }}這樣的表達(dá)式
    • 小程序提倡把渲染和邏輯分離,簡(jiǎn)單來(lái)說(shuō)就是不要再讓 JS 直接操控 DOM,JS只需要負(fù)責(zé)數(shù)據(jù)的處理,然后再通過(guò)一種模板語(yǔ)法來(lái)進(jìn)行界面結(jié)構(gòu)展示。
    • 將js文件中的數(shù)據(jù)傳遞到視圖層中方法 (異步改就數(shù)據(jù))
     this.setData({ msg: "Hello World" })
    
    • 在視圖層中顯示數(shù)據(jù)
     <view>{{變量}}</view>
    

    通過(guò) {{ }} 的語(yǔ)法把一個(gè)變量綁定到界面上,我們稱為數(shù)據(jù)綁定。僅僅通過(guò)數(shù)據(jù)綁定還不夠的,還需要 if/else, for等控制能力,在小程序里邊,這些控制能力都用 wx: 開(kāi)頭的屬性來(lái)表達(dá)。

  • 列表渲染for

    • wx:for-index可以指定數(shù)組當(dāng)前下標(biāo)的變量名 默認(rèn)名為 index
    • wx:for-item 可以指定數(shù)組當(dāng)前元素的變量名 默認(rèn)名為 item
    • wx:key 可以定義也可以不定義 唯一的標(biāo)識(shí)符
  • 條件渲染

    • 在框架中,使用 wx:if="{{condition}}" 來(lái)判斷是否需要渲染該代碼塊:也可以用 wx:elif 和 wx:else 來(lái)添加一個(gè) else 塊:
  • 模板
    WXML提供模板(template),可以在模板中定義代碼片段,然后在不同的地方調(diào)用。
    使用 name 屬性,作為模板的名字。然后在<template/>內(nèi)定義代碼片段,如:
    調(diào)用 is 指定name的名稱 data指定控制層傳過(guò)來(lái)的數(shù)據(jù) 一定要用{{}}括起來(lái)

  • 引用
    簡(jiǎn)單理解:把模板定義到外部,然后大家共享,多個(gè)頁(yè)面間,就可以共用。

https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/import.html 

WXML 提供兩種文件引用方式import和include

  • import是引用過(guò)來(lái),需要template調(diào)用,而include引入是直接把代碼復(fù)制過(guò)來(lái)一份。
  • import定義的時(shí)候是需要template標(biāo)簽,而include是不需要。
  • import是不可以嵌套的,而include是可以嵌套的。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容