微信小程序_介紹

開發準備

  1. 注冊微信小程序

    • 進入微信公眾平臺

    • 點擊立即注冊,選擇小程序,前往注冊

    • 完善個人/企業信息

  2. 獲取AppID

    進入小程序頁面->開發->開發設置->AppID

  3. 下載微信開發者工具

    微信官方下載下載微信開發者工具穩定版

  4. 創建項目

    • 綁定AppID
    • 不使用云服務

組成結構

主界面

在這里插入圖片描述

在這里插入圖片描述

項目基本結構

在這里插入圖片描述

  • pages用來存放所有小程序的頁面
  • utils 用來存放工具性質的模塊(例如:格式化時間的自定義模塊)
  • app.js 小程序項目的入口文件
  • app.json 小程序項目的全局配置文件
  • app.wxss 小程序項目的全局樣式文件
  • project.config.json 項目的配置文件
  • sitemap.json 用來配置小程序及其頁面是否允許被微信索引

頁面組成部分

在這里插入圖片描述

其中,每個頁面由4個基本文件組成,它們分別是:

  • .js文件(頁面的腳本文件,存放頁面的數據、事件處理函數等)
  • .json文件(當前頁面的配置文件,配置窗口的外觀、表現等)
  • .wxml文件(頁面的模板結構文件)
  • .wxss文件(當前頁面的樣式表文件)

json文件

JSON 是一種數據格式,在實際開發中,JSON 總是以配置文件的形式出現。

小程序項目中也不例外:通過不同的 .json 配置文件,可以對小程序項目進行不同級別的配置。

小程序項目中有 4 種 json 配置文件,分別是:

① 項目根目錄中的 app.json 配置文件

② 項目根目錄中的 project.config.json 配置文件

③ 項目根目錄中的 sitemap.json 配置文件

④ 每個頁面文件夾中的 .json 配置文件

app.json

app.json 是當前小程序的全局配置,包括了小程序的所有頁面路徑、窗口外觀、界面表現、底部 tab 等。

Demo 項目里邊的 app.json 配置內容如下:

{//pages:用來記錄當前小程序所有頁面的路徑"pages": ["pages/index/index","pages/logs/logs"],//window:全局定義小程序所有頁面的背景色、文字顏色等"window": {"navigationBarTextStyle": "black","navigationStyle": "custom"},//style:全局定義小程序組件所使用的樣式版本"style": "v2","rendererOptions": {"skyline": {"defaultDisplayBlock": true,"disableABTest": true,"sdkVersionBegin": "3.0.0","sdkVersionEnd": "15.255.255"}},"componentFramework": "glass-easel",//sitemapLocation:用來指明 sitemap.json 的位置"sitemapLocation": "sitemap.json","lazyCodeLoading": "requiredComponents"
}
project.config.json

project.config.json 是項目配置文件,用來記錄我們對小程序開發工具所做的個性化配置

例如:

  • setting 中保存了編譯相關的配置
  • projectname 中保存的是項目名稱
  • appid 中保存的是小程序的賬號 ID
sitemap.json

微信現已開放小程序內搜索,效果類似于 PC 網頁的 SEO。

sitemap.json 文件用來配置小程序頁面是否允許微信索引。

當開發者允許微信索引時,微信會通過爬蟲的形式,為小程序的頁面內容建立索引。

當用戶的搜索關鍵字和頁面的索引匹配成功的時候,小程序的頁面將可能展示在搜索結果中。

sitemap 的索引提示是默認開啟的,如需要關閉 sitemap 的索引提示,可在小程序項目配置文件project.config.json 的 setting 中配置字段 checkSiteMap 為 false

頁面的.json配置文件

小程序中的每一個頁面,可以使用 .json 文件來對本頁面的窗口外觀進行配置,頁面中的配置項會覆蓋app.json 的 window 中相同的配置項。

新建小程序頁面

只需要在 app.json -> pages 中新增頁面的存放路徑,小程序開發者工具即可幫我們自動創建對應的頁面文件

例如:

"pages": ["pages/index/index","pages/logs/logs""pages/list/list"]

在pages中添加如上list,就會為我們自動創建相應的文件夾及文件

在這里插入圖片描述

修改項目首頁

只需要調整 app.json -> pages 數組中頁面路徑的前后順序,即可修改項目的首頁。小程序會把排在第一位的頁面,當作項目首頁進行渲染

WXML

WXML(WeiXin Markup Language)是小程序框架設計的一套標簽語言,用來構建小程序頁面的結構,其作用類似于網頁開發中的 HTML。

WXML 和 HTML 的區別
  • 標簽名稱不同

    • HTML (div, span, img, a)
    • WXML(view, text, image, navigator)
  • 屬性節點不同

    • <a href="#">超鏈接</a>
    • <navigator url="/pages/home/home"></navigator>
  • 提供了類似于 Vue 中的模板語法

    • 數據綁定
    • 列表渲染
    • 條件渲染

WXSS

WXSS (WeiXin Style Sheets)是一套樣式語言,用于描述 WXML 的組件樣式,類似于網頁開發中的 CSS。

WXSS 和 CSS 的區別
  • 新增了 rpx 尺寸單位

    • CSS 中需要手動進行像素單位換算,例如 rem
    • WXSS 在底層支持新的尺寸單位 rpx,在不同大小的屏幕上小程序會自動進行換算
  • 提供了全局的樣式和局部樣式

    • 項目根目錄中的 app.wxss 會作用于所有小程序頁面
    • 局部頁面的 .wxss 樣式僅對當前頁面生效
  • WXSS 僅支持部分 CSS 選擇器

    • .class 和 #id
    • element
    • 并集選擇器、后代選擇器
    • ::after 和 ::before 等偽類選擇器

js文件

一個項目僅僅提供界面展示是不夠的,在小程序中,我們通過 .js 文件來處理用戶的操作。例如:響應用戶的點擊、獲取用戶的位置等等。

.js文件分類

小程序中的 JS 文件分為三大類,分別是:

① app.js

是整個小程序項目的入口文件,通過調用 App() 函數來啟動整個小程序

② 頁面的 .js 文件

是頁面的入口文件,通過調用 Page() 函數來創建并運行頁面

③ 普通的 .js 文件

是普通的功能模塊文件,用來封裝公共的函數或屬性供頁面使用

宿主環境

概念

宿主環境(host environment)指的是程序運行所必須的依賴環境。例如:

Android 系統和 iOS 系統是兩個不同的宿主環境。

安卓版的微信 App 是不能在 iOS 環境下運行的,所以,Android 是安卓軟件的宿主環境,脫離了宿主環境的軟件是沒有任何意義的!

小程序的宿主環境

小程序借助宿主環境提供的能力,可以完成許多普通網頁無法完成的功能

例如:微信掃碼、微信支付、微信登錄、地理定位…

小程序宿主環境包含的內容

通信模型、運行機制、組件、API

通信模型

小程序中通信的主體是渲染層和邏輯層,其中:

  • WXML 模板和 WXSS 樣式工作在渲染層

  • JS 腳本工作在邏輯層

小程序中的通信模型分為兩部分:

  • 渲染層和邏輯層之間的通信

    • 由微信客戶端進行轉發
  • 邏輯層和第三方服務器之間的通信

    • 由微信客戶端進行轉發

在這里插入圖片描述

運行機制

小程序啟動的過程:

  1. 把小程序的代碼包下載到本地
  2. 解析 app.json 全局配置文件
  3. 執行 app.js 小程序入口文件,調用 App() 創建小程序實例
  4. 渲染小程序首頁
  5. 小程序啟動完成

頁面渲染過程:

  1. 加載解析頁面的 .json 配置文件
  2. 加載頁面的 .wxml 模板和 .wxss 樣式
  3. 執行頁面的 .js 文件,調用 Page() 創建頁面實例
  4. 頁面渲染完成

組件

小程序中的組件也是由宿主環境提供的,開發者可以基于組件快速搭建出漂亮的頁面結構。

官方把小程序的組件分為了 9 大類,分別是:

① 視圖容器

② 基礎內容

③ 表單組件

④ 導航組件

⑤ 媒體組件

⑥ map 地圖組件

⑦ canvas 畫布組件

⑧ 開放能力

⑨ 無障礙訪問

視圖容器

常用的視圖容器類組件:

  • view

    • 普通視圖區域
    • 類似于 HTML 中的 div,是一個塊級元素
    • 常用來實現頁面的布局效果
  • scroll-view

    • 可滾動的視圖區域
    • 常用來實現滾動列表效果
  • swiper 和 swiper-item

    • 輪播圖容器組件 和 輪播圖 item 組件
view

在這里插入圖片描述

scroll-view

在這里插入圖片描述

swiper 和 swiper-item

在這里插入圖片描述

swiper 組件的常用屬性

屬性類型默認值說明
indicator-dotsbooleanfalse是否顯示面板指示點
indicator-colorcolorrgba(0,0,0,3)指示點顏色
indicator-active-colorcolor#000000當前選中的指示點顏色
autoplaybooleanfalse是否自動切換
intervalnumber5000自動切換時間間隔
circularbooleanfalse是否采用銜接滑動
基礎內容

常用的基礎內容組件

  • text

    • 文本組件

    • 類似于 HTML 中的 span 標簽,是一個行內元素

      在這里插入圖片描述

      通過 text 組件的 selectable 屬性,實現長按選中文本內容的效果

  • rich-text

    • 富文本組件

    • 支持把 HTML 字符串渲染為 WXML 結構

      在這里插入圖片描述

      通過 rich-text 組件的 nodes 屬性節點,把 HTML 字符串渲染為對應的 UI 結構

其他常用組件
  • button

    • 按鈕組件
    • 功能比 HTML 中的 button 按鈕豐富
    • 通過 open-type 屬性可以調用微信提供的各種功能(客服、轉發、獲取用戶授權、獲取用戶信息等)
  • image

    • 圖片組件
    • image 組件默認寬度約 300px、高度約 240px
  • navigator

    • 頁面導航組件
    • 類似于 HTML 中的 a 鏈接
button

在這里插入圖片描述

image

在這里插入圖片描述

image的mode屬性

image 組件的 mode 屬性用來指定圖片的裁剪和縮放模式,常用的 mode 屬性值如下:

mode 說明
scaleToFill(默認值)縮放模式,不保持縱橫比縮放圖片,使圖片的寬高完全拉伸至填滿 image 元素
aspectFit縮放模式,保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來。也就是說,可以完整地將圖片顯示出來。
aspectFill縮放模式,保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來。也就是說,圖片通常只在水平或垂直方向是完整的,另一個方向將會發生截取。
widthFix縮放模式,寬度不變,高度自動變化,保持原圖寬高比不變
heightFix縮放模式,高度不變,寬度自動變化,保持原圖寬高比不變

API

概述

小程序中的 API 是由宿主環境提供的,通過這些豐富的小程序 API,開發者可以方便的調用微信提供的能力,

例如:獲取用戶信息、本地存儲、支付功能等

分類

小程序官方把 API 分為了如下 3 大類:

  1. 事件監聽 API

    • 特點:以 on 開頭,用來監聽某些事件的觸發
    • 舉例:wx.onWindowResize(function callback) 監聽窗口尺寸變化的事件
  2. 同步 API

    • 特點1:以 Sync 結尾的 API 都是同步 API
    • 特點2:同步 API 的執行結果,可以通過函數返回值直接獲取,如果執行出錯會拋出異常
    • 舉例:wx.setStorageSync(‘key’, ‘value’) 向本地存儲中寫入內容
  3. 異步 API

    • 特點:類似于 jQuery 中的 $.ajax(options) 函數,需要通過 success、fail、complete 接收調用的結果
    • 舉例:wx.request() 發起網絡數據請求,通過 success 回調函數接收數據

協同工作

項目成員的組織結構

在這里插入圖片描述

小程序開發流程

在這里插入圖片描述

小程序成員管理

  • 項目成員:

    • 表示參與小程序開發、運營的成員
    • 可登錄小程序管理后臺
    • 管理員可以添加、刪除項目成員,并設置項目成員的角色
  • 體驗成員:

    • 表示參與小程序內測體驗的成員
    • 可使用體驗版小程序,但不屬于項目成員
    • 管理員及項目成員均可添加、刪除體驗成員

不同項目成員對應的權限:

權限運營者開發者數據分析者
開發者權限
體驗者權限
登錄
數據分析
微信支付
推廣
開發管理
開發設置
暫停服務
解除關聯公眾號
騰訊云管理
小程序插件
游戲運營管理

開發者權限:可使用小程序開發者工具及對小程序的功能進行代碼開發

體驗者權限:可使用體驗版小程序

登錄權限:可登錄小程序管理后臺,無需管理員確認

開發設置:設置小程序服務器域名、消息推送及掃描普通鏈接二維碼打開小程序

騰訊云管理:云開發相關設置

小程序的版本

在軟件開發過程中,根據時間節點的不同,會產出不同的軟件版本,例如:

① 開發者編寫代碼的同時,對項目代碼進行自測(開發版本)

② 直到程序達到一個穩定可體驗的狀態時,開發者把體驗版本給到產品經理和測試人員進行體驗測試

③ 最后修復完程序的 Bug 后,發布正式版供外部用戶使用

版本階段說明
開發版本使用開發者工具,可將代碼上傳到開發版本中。 開發版本只保留每人最新的一份上傳的代碼。點擊提交審核,可將代碼提交審核。開發版本可刪除,不影響線上版本和審核中版本的代碼。
體驗版本可以選擇某個開發版本作為體驗版,并且選取一份體驗版。
審核中的版本只能有一份代碼處于審核中。有審核結果后可以發布到線上,也可直接重新提交審核,覆蓋原審核版本。
線上版本線上所有用戶使用的代碼版本,該版本代碼在新版本代碼發布后被覆蓋更新。

發布上線

一個小程序的發布上線,一般要經過上傳代碼 -> 提交審核 -> 發布這三個步驟。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210225.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210225.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210225.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用Rust刷LeetCode之27 移除元素

27. 移除元素 難度: 簡單 原描述: 新描述: func removeElement(nums []int, val int) int { for i : 0; i < len(nums); i { if nums[i] val { nums append(nums[:i], nums[i1:]...) i-- } } return len(nums)} Rust 版本 下面這種寫法編譯無法通過: pub fn remove_…

基于ssm平面設計課程在線學習平臺系統源碼和論文

idea 數據庫mysql5.7 數據庫鏈接工具&#xff1a;navcat,小海豚等 隨著信息化時代的到來&#xff0c;管理系統都趨向于智能化、系統化&#xff0c;平面設計課程在線學習平臺系統也不例外&#xff0c;但目前國內的市場仍都使用人工管理&#xff0c;市場規模越來越大&#xff0c;…

【ArcGIS微課1000例】0079:ArcGIS Earth根據經緯坐標生成點shapefile

本文以氣象臺站數據的生成為例,詳細介紹ArcGIS Earth中導入X、Y經緯度坐標,生成Shapefile點數據的流程。 文章目錄 一、氣象臺站分布二、添加經緯度坐標三、符號化設置四、另存為一、氣象臺站分布 根據氣象臺站的經緯度坐標,可以很方便的在各種GIS平臺上生成點,并保存為多…

智能優化算法應用:基于蜣螂算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于蜣螂算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于蜣螂算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.蜣螂算法4.實驗參數設定5.算法結果6.參考文獻7.MATLAB…

STM32基礎教程 p16 窗口看門狗(WWDG)

1 窗口看門狗工作原理 1.1 簡介 WWDG簡介 窗口看門狗通常被用來監測&#xff0c;由外部干擾或不可預見的邏輯條件造成的應用程序背離正常的運 行序列而產生的軟件故障。除非遞減計數器的值在T6位變成0前被刷新&#xff0c;看門狗電路在達到預置 的時間周期時&#xff0c;會產…

定位分析RCU stall問題

使用RCU_CPU_STALL_CPUTIME 在編譯內核時打開CONFIG_RCU_CPU_STALL_CPUTIMEy或者在啟動參數中增加 rcupdate.rcu_cpu_stall_cputime1, 這樣在發生RCU STALL告警時就會有下面附加信息: rcu: hardirqs softirqs csw/systemrcu: number: 624 45 …

聯合基于信息論的安全和隱蔽通信的框架

這個標題很帥 abstractintroductionsystem modelPROPOSED JOINT OPTIMIZATION OF ITS AND COVERT TRANSMISSION RATE信息論安全 (ITS)隱蔽通信需要(CC)Joint Information-Theoretic Secrecy and Covert Communication in the Presence of an Untrusted User and Warden 202…

ffmpeg編解碼——時間基(time base)概念

文章目錄 FFmpeg 編解碼——時間基&#xff08;Time Base&#xff09;概念1. 時間基&#xff08;Time Base&#xff09;概念1.1 定義與作用1.2 表現形式 2. 時間基在FFmpeg中的應用2.1 時間戳2.2 持續時間 3. 理解FFmpeg中的時間基轉換3.1 av_rescale_q 函數3.2 av_rescale_q_r…

Shell數組函數:數組——數組和循環(四)

使用數組統計&#xff0c;用戶shell的類型和數量 一、腳本編輯 [root192 ~]# vim shell.sh #!/bin/bash declare -A shells while read ii dotypeecho $ii | awk -F: {print $7}let shells[$type] done < /etc/passwdfor i in ${!shells[]} doecho "$i: ${shells[$i]…

多任務學習(Multi-Task Learning)和遷移學習(Transfer Learning)的詳細解釋以及區別(系列1)

文章目錄 前言一、多任務學習&#xff08;Multi-Task Learning&#xff09;是什么&#xff1f;二、多任務學習&#xff08;Multi-Task Learning&#xff09;對數據的要求三、遷移學習是什么&#xff1f;四&#xff0c;遷移學習對數據的要求五&#xff0c;多任務學習與遷移學習的…

DevOps - Spug 自動化運維平臺

關于Spug Spug&#xff1a;麻雀&#xff0c;麻雀雖小&#xff0c;五臟俱全。 Spug是面向中小型企業設計的輕量級無Agent的自動化運維平臺&#xff0c;整合了主機管理、主機批量執行、主機在線終端、文件在線上傳下載、應用發布部署、在線任務計劃、配置中心、監控、報警等一系…

利用jdbc對數據庫進行增刪改查

步驟/過程&#xff1a; 1&#xff0c;導入驅動包 2&#xff0c;加載驅動包 3&#xff0c;輸入信息&#xff0c;進行數據庫連接 4&#xff0c;創建 statement對象 5&#xff0c;執行sql語句 6&#xff0c;如果是查詢操作&#xff0c;利用ResultSet處理數據&#xf…

智能優化算法應用:基于鯨魚算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于鯨魚算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于鯨魚算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.鯨魚算法4.實驗參數設定5.算法結果6.參考文獻7.MA…

Python-pdf工具自制(合并、拆分、刪除)

pdf工具&#xff0c;之前寫的合并工具有點麻煩&#xff0c;使用PyQt5庫重寫合并拆分和刪除指定頁面的程序 實現如圖&#xff1a; 代碼&#xff1a; import sysimport osfrom PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QFileDia…

java 好碼

1【強制】不要在 foreach 循環里進行元素的 remove/add 操作。 remove 元素請使用 Iterator方式&#xff0c;如果并發操作&#xff0c;需要對 Iterator 對象加鎖。 正例&#xff1a; List<String> list new ArrayList<>(); list.add("1");list.add(…

unity 2d 入門 飛翔小鳥 Cinemachine 記錄分數(十二)

1、創建文本 右鍵->create->ui->leagcy->text 2、設置字體 3、設置默認值和數字 4、當切換分辨率&#xff0c;分數不見問題 拖拽這里調整 調整到如下圖 5、編寫得分腳本 using System.Collections; using System.Collections.Generic; using UnityEngine; …

Docker網絡架構介紹

本文主要介紹了Docker容器的單機網絡架構與集群網絡架構&#xff0c;輔以演示&#xff0c;并簡單介紹了網絡管理中的命令。 前文&#xff1a; Docker的安裝與簡單操作命令-CSDN博客 docker網絡原理介紹 與ovs類似&#xff0c;docker容器采用veth-pair linux bridge (虛擬交…

mysql語句練習

1、查詢"01"課程比"02"課程成績高的學生的信息及課程分數 SELECT student.*,s1.s_score,s2.s_score FROM student,score s1,score s2 WHERE student.s_ids1.s_id AND student.s_ids2.s_id AND s1.c_id01 AND s2.c_id02 AND s1.s_score>s2.s_score 2、…

0007Java程序設計-ssm基于微信小程序的在線考試系統

文章目錄 **摘要**目 錄系統實現開發環境 編程技術交流、源碼分享、模板分享、網課分享 企鵝&#x1f427;裙&#xff1a;776871563 摘要 網絡技術的快速發展給各行各業帶來了很大的突破&#xff0c;也給各行各業提供了一種新的管理技術&#xff0c;基于微信小程序的在線考試…

Linux下apisix離線安裝教程

Linux下apisix離線安裝教程 一、首先需要安裝etcd&#xff1a;二、通過rpm離線安裝apisix三、啟動apisix四、安裝apisix-dashboard1、安裝2、更改dashboard登錄賬號名和密碼3、運行 一、首先需要安裝etcd&#xff1a; 解壓縮etcd后執行以下命令&#xff1a; tar -xvf etcd-v3.…