【相關學習推薦:微信小程式開發教學】
#資源路徑說明
<!-- 绝对路径,/static指根目录下的static目录,在cli项目中/static指src目录下的static目录 --> <image class="logo" src="/static/logo.png"></image> <image class="logo" src="@/static/logo.png"></image> <!-- 相对路径 --> <image class="logo" src="../../static/logo.png"></image>
js檔案或script標籤內(包括renderjs等)引入js檔案時,可以使用相對路徑和絕對路徑。 js檔案不支援使用/開頭的方式引入
// 绝对路径,@指向项目根目录,在cli项目中@指向src目录 import add from '@/common/add.js' // 相对路径 import add from '../../common/add.js'
/* 绝对路径 */ @import url('/common/uni.css'); @import url('@/common/uni.css'); /* 相对路径 */ @import url('../../common/uni.css');
/* 绝对路径 */
background-image: url(/static/logo.png);
background-image: url(@/static/logo.png);
/* 相对路径 */
background-image: url(../../static/logo.png);
生命週期
應用生命週期
說明 | |
#onLaunch | 當uni-app 初始化完成時觸發(全域只觸發一次) |
onShow | 當uni-app 啟動,或從後台進入前台顯示 |
當uni-app 從前台進入後台
onError
頁面生命週期 | |
---|---|
#函數名稱 | |
監聽頁面加載,其參數為上個頁面傳遞的數據,參數類型為Object(用於頁面傳參) | |
監聽頁面顯示。頁面每次出現在螢幕上都會觸發,包括從下級頁麵返回露出目前頁面 | |
監聽頁面初次渲染完成。注意如果渲染速度快,會在頁面進入動畫完成前觸發 | |
監聽頁面隱藏 | |
監聽頁面卸載 | |
#監聽視窗尺寸變化 | ##onPullDownRefresh |
#onReachBottom | |
點選tab 時觸發,參數為Object | |
使用者點選右上角分享 | |
監聽頁面滾動,參數為Object |
onBackPress
監聽頁面返回,返回event = {from:backbutton、 navigateBack} ,backbutton 表示來源是左上角返回按鈕或android 返回鍵;navigateBack表示來源是uni.navigateBack
監聽原生標題列搜尋輸入框輸入內容變更事件 | #原生 |
---|---|
onNavigationBarSearchInputClicked | |
函數名稱 | 說明 |
beforeCreate | |
created | |
beforeMount | |
#mounted |
路由
uni-app路由统一有框架管理,开发者需要在pages.json里配置每个路由页面的路径及页面样式。如仍希望采用 Vue Router 方式管理路由,可在插件市场搜索 Vue-Router。
路由跳转
uni-app 有两种页面路由跳转方式:使用navigator组件跳转、调用API跳转
页面栈
路由方式 | 页面栈表现 | 触发时机 |
---|---|---|
初始化 | 新页面入栈 | uni-app 打开的第一个页面 |
打开新页面 | 新页面入栈 | 调用 API uni.navigateTo 、使用组件 |
页面重定向 | 当前页面出栈,新页面入栈 | 调用 API uni.redirectTo 、使用组件 |
页面返回 | 页面不断出栈,直到目标返回页 | 调用 API uni.navigateBack 、使用组件 |
Tab 切换 | 页面全部出栈,只留下新的 Tab 页面 | 调用 API uni.switchTab 、使用组件 |
重加载 | 页面全部出栈,只留下新的页面 | 调用 API uni.reLaunch 、使用组件 |
运行环境判断
// uEnvDev if (process.env.NODE_ENV === 'development') { // TODO } // uEnvProd if (process.env.NODE_ENV === 'production') { // TODO }
页面样式与布局
单位
px为屏幕像素,rpx响应式px,它们之间的换算公式为750 * 元素在设计稿中的宽度 / 设计稿基准宽度
样式导入
<style> @import "../../common/uni.css"; .uni-card { box-shadow: none; }</style>
flex布局
<style>/*主要有两个概念 容器与项目*/ .container{ display: flex; flex-direction:row; flex-wrap:nowrap; flex-flow: row nowrap;/*简写方式*/ justify-content: center;/*定义项目在主轴上的对齐方式*/ align-items:center;/*定义项目在交叉轴上如何对齐*/}.item { order: 1; flex-grow:0;/*定义项目的放大比例*/ flex-shrink:1;/*定义了项目的缩小比例*/ align-self:auto;/*单个项目有与其他项目不一样的对齐方式*/}</style>
定义全局变量
- 共用模块
- Vue.prototype
- globalData
- Vuex
参考文章 uni-app全局变量的几种实现方式
class与style绑定
支持数组合对象的方式
计算属性
计算属性是基于它们的响应式依赖进行缓存的
条件渲染
v-if v-show
列表渲染
v-for 注意携带key
事件处理
// 事件映射表,左侧为 WEB 事件,右侧为 ``uni-app`` 对应事件{ click: 'tap', touchstart: 'touchstart', touchmove: 'touchmove', touchcancel: 'touchcancel', touchend: 'touchend', tap: 'tap', longtap: 'longtap', //推荐使用longpress代替 input: 'input', change: 'change', submit: 'submit', blur: 'blur', focus: 'focus', reset: 'reset', confirm: 'confirm', columnchange: 'columnchange', linechange: 'linechange', error: 'error', scrolltoupper: 'scrolltoupper', scrolltolower: 'scrolltolower', scroll: 'scroll'}
表单控件绑定
推荐使用uni-app的表单组件
组件分为全局组件和局部组件
都存在类似的操作,即导入,注册,使用
常见问题
1、如何获取上个页面传递的数据
onLoad(args)
2、如何设置全局的数据和全局的方法
vuex(uni-app已经内置了vuex)
uni-app自带统计平台,只要稍作配制就可以使用
uni统计官网地址:tongji.dcloud.net.cn/
以上是微信小程式的基礎知識儲備的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

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

Atom編輯器mac版下載
最受歡迎的的開源編輯器

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