微信小程式速查知識
本文主要和大家分享微信小程式速查知識,可以讓大家對微信小程式開發更加容易,希望本文能幫助大家。
1. 設定
設定全解析
#project.config.json ( 專案設定檔)
{ // 文件描述 "description": "项目配置文件", // 项目代码配置 "setting": { // 是否检查 url 域名安全性和 TLS 版本 "urlCheck": false, // 是否将项目的 es5 代码转成 es6 "es6": true, // 是否自动补全 css 兼容前缀 "postcss": true, // 是否压缩代码 "minified": true, // 是否启用新功能 "newFeature": true }, // 编译方式 "compileType": "miniprogram", // 版本号 "libVersion": "1.7.2", // appid "appid": "touristappid", // 项目名 "projectname": "haiyangbg", // 项目配置 "condition": { // 搜索关键字 "search": { "current": -1, "list": [] }, // 客服 "conversation": { "current": -1, "list": [] }, // 编译方式 "miniprogram": { "current": -1, "list": [] } } }
app.json ( 小程式設定)
{ // 项目路由设置(第一项为首页) "pages":[ "pages/index/index", "pages/logs/logs" ], // 窗口设置 "window":{ // 顶部导航栏背景色,必须是十六进制颜色值,如"#000000" "navigationBarBackgroundColor": "#9ef468", // 顶部导航栏显示文字 "navigationBarTitleText": "组件展示", // 导航栏文字颜色,仅支持 black/white "navigationBarTextStyle": "black", // 下拉背景的文字样式,仅支持 dark/light "backgroundTextStyle":"light", // 下拉背景色,必须是十六进制颜色值,如"#000000" "backgroundColor": "#333", // 是否开启下拉刷新 "enablePullDownRefresh": true, // 距离最底端触多少距离时触发触底事件,单位px "onReachBottomDistance": 40 }, //网络请求过期时间,单位毫秒 "networkTimeout": { // 普通ajax请求 "request": 20000, // Socket请求 "connectSocket": 20000, // 文件上传 "uploadFile": 20000, // 文件下载 "downloadFile": 20000 }, // tab导航栏 "tabBar": { // 文字的颜色 "color": "#999", // 选中时文字的颜色 "selectedColor": "#000", // 背景色 "backgroundColor": "#fff", // 上边框的颜色,仅支持 black/white "borderStyle": "black", // tab导航栏显示在底部还是顶部(顶部不显示图片) "position": "bottom", // 导航栏列表项 "list": [{ // 导航到的页面路径 "pagePath": "pages/index/index", // tab按钮上的文字 "text": "组件", // 图片路径 "iconPath": "img/com-l.png", // 选中后显示的图片 "selectedIconPath": "img/com-d.png" },{ "pagePath": "pages/logs/logs", "text": "API", "iconPath": "img/api-l.png", "selectedIconPath": "img/api-d.png" }] }, // 调试信息 "debug": true }
page.json ( 單頁面配置)
單一頁面的json
就是app.json
的window
字段,當載入到這個頁面時,此組態將會覆寫app.json
2. 生命週期
小程式App 生命週期
- onLaunch ------ 小程式初始化完成時,觸發(只會呼叫一次)
onHide ------ 當小程式從前台進入後台,觸發
onError -- ---- 1.發生腳本錯誤2. api 呼叫失敗,觸發並帶上錯誤訊息
- 單頁Page 生命週期
- onLoad ------ 頁面載入時,觸發(只會呼叫一次)
- #onShow ------ 頁面顯示時,觸發
onHide ----- - 頁面隱藏時,觸發
onUnload ------ 頁面卸載時,觸發##詳細的生命週期分類:
1.小程式啟動:
- -> App.onShow - -> ; 註冊app.json pages裡的頁面(依索引順序) - -> 將app路由設定為首頁路由- -> 首頁page參數深拷貝- -> 初始化首頁data - ->
Page. onLoad - -> Page.onShow
- -> Page.onReady
##2.切後台(app 和page 生命週期重合):
page.onHide
- ->- App.onHide
- - -> 切回小程式- ->
App.onShow
navigateTo- ->
page.onShow3.跳頁:
##old 表示前一個頁面, new 表示新頁面 跳轉- -> 將路由設定為目標頁面路由- -> - old.onHide
- ->初始化頁面data - ->
#redirectTonew.onLoad
- ->new.onShow
- ->new.onReady
重定向- -> 設定路由- -> - old.onUnload
- -> init data - ->
new .onLoad
- ->new.onShow
- ->new.onReady
##navigateBack
頁面返回- -> 設定路由- ->
old.onUnload- -> init data - ->
new.onShow
- 重新啟動- -> 設定路由- ->
- old.onUnload
- -> init data - ->
new.onLoad - -> - new.onShow
- ->
new.onReady
- switchTab
- Tab 切換(圖截自官方文件)
##數據綁定: { { message } }
渲染
列表渲染:
- wx:for=" { { message } } " - wx:for-index="idx" (设置索引的变量名,默认 index ) - wx:for-item="itemName"(设置每一项的变量名,默认item )
條件渲染:
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">- wx:if="boolean" - wx:elif="boolean" -wx:else="boolean" == (if - else if - if)
- hidden="boolean"</pre><div class="contentsignin">登入後複製</div></div>
- 基本用法:
-
( 定義程式碼片段,可以在不同的地方調用,使用name 屬性,作為模板的名字,調用時使用is 屬性)
// 源码(需要和调用的页面在同一个wxml里) <template name="template"> <view> I am {{ name }} </view> </template> // 调用 <template is="template" data="{{...message}}"/> // js 数据 Page({ data: { message: { name: '海洋饼干' } } })
登入後複製 進階用法
當時很多的頁面都需要同一個模板時,就需要模板導入了
先在pages資料夾中新建一個- template資料夾
,資料夾中新建一個
template.wxml
檔案// template.wxml <template name="template"> <view> I am {{ name }} </view> </template>
登入後複製// page.wxml 调用 <import src ="../template/template.wxml"/> <template is="template" data="{{...message}}"/> // js 数据 Page({ data: { message: { name: '海洋饼干' } } })
登入後複製5. 事件
- 事件
-
#點選事件 tap -
長按事件(超過0.35秒) longpress - #觸控
事件
#### 才開始移動### touchmove############################################# ###觸碰後被打斷### touchcancel###############觸碰結束### touchend################################################################## ####動畫### 事件###
过渡完成时触发
transitionend
动画开始时触发
animationstart
一次迭代结束时触发
animationiteration
动画完成时触发
animationend
事件冒泡,事件捕获
绑定事件 + 冒泡:
bind
+ 事件名 , 如bindtap
绑定事件 + 阻止冒泡:
catch
+ 事件名 , 如catchtap
捕获 + 冒泡:
capture-bind:
+ 事件名 , 如capture-bind:tap
捕获 + 中断事件 + 取消冒泡:
capture-catch:
+ 事件名 , 如capture-catch:tap
事件对象
BaseEvent
( 基础事件,所有事件的父类 )同 target
id
( String - 事件源的id )tagName
( String - 当前组件的类型 )dataset
( Object - 事件源组件上由data-开头的自定义属性集合 )type
( String - 事件类型 )timeStamp
( Integer - 事件生成时的时间戳 )target
( Object - 触发事件的组件的属性 )currentTarget
( Object - 当前组件的属性 )TouchEvent
( 触摸事件 )identifier
( Number - 触摸点的标识符 )pageX
( Number - 距文档左上角 x 轴的距离 )pageY
( Number 距文档左上角 y 轴的距离 )clientX
( Number 距页面可显示区域 x 轴的距离 )clientY
( Number 距页面可显示区域 y 轴的距离 )touches
( Array 停留在屏幕中的触摸点的信息对象集合 )changedTouches
( Array 变化的触摸点信息对象集合 )CustomEvent
( 自定义事件 )detail
( Object - 自定义事件额外的信息 )
6. wxs 模块
wxs 文件就是 js 文件,引入 wxs 文件就是引入一个 js 模块( 不能用es6 ),现有两种引入方式
-
在
wxml
里引用,使用<wxs>
标签
1.1.module
必填,为当前模块的模块名
1.2.src
选填,引用.wxs
文件的相对路径(仅当标签为 单闭合标签 或 标签的内容为空 时有效)
1.3. 例引入:<wxs src="./index.wxs" module="index" /> 自己撸: <wxs module="index"> var foo = '海洋饼干' module.exports = { foo } </wxs>
登入後複製 在
wxs
里引用,使用require
引用
2.1. 例var tools = require("./tools.wxs")
7. wxss 样式
微信版的 css ,几个不同的地方
添加 自适应尺寸单位 ( rpx )
添加 导入外联样式 ( @import )
精减 css选择器,只支持
类选择器 .class
id选择器 #id
标签选择器 element
兄弟选择器 element1,element2
伪元素选择器 只支持两种 ::after ::before
8. 自定义组件
使用自定义组件
-
创建自定义组件( 类似于page,但需要在 json 文件中将
component
字段设为true
){ "component": true }
登入後複製 -
创建组件构造器 ( 构造函数不是page(),而是Component() )
Component({ // 组件的对外属性(父组件传的数据) properties: { msg: { type: String, value: 'msg', // 父组件值改变时触发的回调 observer: () => { console.log('i am change') } } }, data: { componentData: {} }, })
登入後複製 -
使用自定义组件( 先要在页面的
json
文件中进行引用声明 )// 先引用声明 "usingComponents": { // hybg 标签名 "hybg": "../component/component" // 相对路径 } // 直接使用,需要的话要绑定数据 <hybg msg="{{ data }}"></hybg>
登入後複製
slot 模板
1. 单 solt " // component <view> <slot></slot> </view> // page ( hybg 是上面的组件标签名) <hybg> <view> page 的 slot </view> </hybg> // 效果 <view> <view> page 的 slot </view> </view> " 2. 多slot " // 先在 Component 的 js 中添加 options: { // 启用多slot multipleSlots: true }, // 多 slot 需要使用不同的 name 来区分 <view> <slot name="first"></slot> <slot name="last"></slot> </view> // page ( hybg 是上面的组件标签名) <hybg> <view slot="first"> first -- slot </view> <view slot="last"> last-- slot </view> </hybg> // 效果 <view> <view slot="first"> first -- slot </view> <view slot="last"> last-- slot </view> </view> "
父子组件事件(子组件传值)
// page fatherEvent: function(e){ console.log(e.detail) // 组件传递的自定义信息 } <hybg bindhybgEvent="fatherEvent"></hybg> // component tap: function(){ var myEventDetail = { a: 10} // detail对象,提供给事件监听函数 var myEventOption = {} // 触发事件的配置选项 // bubbles 事件是否冒泡 // capturePhase 事件是否拥有捕获阶段 // composed 是否可以穿越父组件边界 this.triggerEvent('hybgEvent', myEventDetail, myEventOption) } <view bindtap="tap">触发 hybgEvent 事件</view>
相关推荐:
以上是微信小程式速查知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

隨著行動互聯網技術和智慧型手機的普及,微信成為了人們生活中不可或缺的一個應用。而微信小程式則讓人們可以在不需要下載安裝應用程式的情況下,直接使用小程式來解決一些簡單的需求。本文將介紹如何使用Python來開發微信小程式。一、準備工作在使用Python開發微信小程式之前,需要先安裝相關的Python函式庫。這裡推薦使用wxpy和itchat這兩個函式庫。 wxpy是一個微信機器

實作微信小程式中的卡片翻轉特效在微信小程式中,實現卡片翻轉特效是一種常見的動畫效果,可以提升使用者體驗和介面互動的吸引力。以下將具體介紹如何在微信小程式中實現卡片翻轉的特效,並提供相關程式碼範例。首先,需要在小程式的頁面佈局檔案中定義兩個卡片元素,一個用於顯示正面內容,一個用於顯示背面內容,具體範例程式碼如下:<!--index.wxml-->&l

小程式能用react,其使用方法:1、基於「react-reconciler」實作一個渲染器,產生一個DSL;2、建立一個小程式元件,去解析和渲染DSL;3、安裝npm,並執行開發者工具中的建構npm;4、在自己的頁面中引入包,再利用api即可完成開發。

本站10月31日消息,今年5月27日,螞蟻集團宣布啟動“漢字拾光計劃”,最近又迎來新進展:支付寶上線“漢字拾光-生僻字”小程序,用於向社會徵集生僻字,補充生僻字庫,同時提供不同的生僻字輸入體驗,以幫助完善支付寶內的生僻字輸入方法。目前,用戶搜尋「漢字拾光」、「生僻字」等關鍵字就可以進入「生僻字」小程式。在小程式裡,使用者可以提交尚未被系統辨識輸入的生僻字圖片,支付寶工程師確認後,將會對字庫進行補錄入。本站注意到,使用者也可以在小程式體驗最新的拆字輸入法,這項輸入法針對讀音不明確的生僻字設計。用戶拆

uniapp如何實現小程式和H5的快速轉換,需要具體程式碼範例近年來,隨著行動網路的發展和智慧型手機的普及,小程式和H5成為了不可或缺的應用形式。而uniapp作為一個跨平台的開發框架,可以在一套程式碼的基礎上,快速實現小程式和H5的轉換,大大提高了開發效率。本文將介紹uniapp如何實現小程式和H5的快速轉換,並給出具體的程式碼範例。一、uniapp簡介unia

實現思路x01服務端的建立首先,在服務端,使用socket進行訊息的接受,每接受一個socket的請求,就開啟一個新的線程來管理訊息的分發與接受,同時,又存在一個handler來管理所有的線程,從而實現對聊天室的各種功能的處理x02客戶端的建立客戶端的建立就要比服務端簡單多了,客戶端的作用只是對消息的發送以及接受,以及按照特定的規則去輸入特定的字符從而實現不同的功能的使用,因此,在客戶端這裡,只需要去使用兩個線程,一個是專門用於接受消息,一個是專門用於發送消息的至於為什麼不用一個呢,那是因為,只

這篇文章給大家帶來了關於微信小程式的相關問題,其中主要介紹瞭如何在小程式中用公眾號範本訊息,下面一起來看一下,希望對大家有幫助。

1.開啟微信小程序,進入對應的小程式頁面。 2.在小程式頁面中尋找會員相關入口,通常會員入口在底部導覽列或個人中心等位置。 3.點選會員入口,進入會員申請頁。 4、在會員申請頁面,填寫相關信息,如手機號碼、姓名等,完成資料填寫後,提交申請。 5.小程式方會對會員申請審核,審核通過後,用戶即可成為微信小程式會員。 6.作為會員,用戶將享有更多的會員權益,如積分、優惠券、會員專屬活動等
