官方网页
uni-app
是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)
、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台
。
简单说: 1次开发 多端运行
官方链接在上面,点解下载
通过globalStyle
进行全局配置
用于设置应用的状态栏、导航条、标题、窗口背景色等。详细文档
如果是第一次使用,需要先配置小程序ide的相关路径,才能运行成功
微信开发者工具在设置中安全设置,服务端口开启
夜神模拟器端口号:62001
海马模拟器端口号:26944
逍遥模拟器端口号:21503
MuMu模拟器端口号:7555
天天模拟器端口号:6555
{{表达式}}
v-text=“表达式”
表达式
简单的js运算
{{2+3}}
js方法调用
{{title.length}}
{{title.split("").reverse().join("")}}
3元运算符
<view>{{title.length>15?'长度很长':'字少事大'}}</view>
v-html 富文本
v-if
v-else-if
v-else
v-show
通过三元运算符
字符串,数字,列表,对象都可以遍历
<view v-for="(item,index) in list" :key="index">{{index+1}} {{item}}</view>
一定要保证兄弟元素间的key值是唯一
<button v-bind:disabled=“true”>
<button :disabled="true">
默认
:value="单向绑定"
input
v-model=“双向绑定”
@change=“$event.detail.value”
事件,事件的值$event.detail.value
<view v-on:click="响应"
简写绑定:
<view @click="事件响应"
事件行内处理
<view @click="num++"
事件响应函数 (函数在methods定义)
<view @click="say"
<view @click="say"
不写参数
@click="say"
等同于
@click=“say()”
等同于
@click=“say($event)”
$event 是一个固定写法 代表事件对象
@click=“doit(str)”
doit(str="你好"){
uni.showModal({title:str})
}
1.6.3,事件对象 $event/e
function say(e){
}
// target目标对象
// dataSet 组件传参
<view :data-title="title" @click="say">
function say(e){
e.target.dataset.title
}
globalStyle
默认页面的样式会应用全局样式
页面写了style 配置,那么用的配置覆盖全局的配置
**pages**
页面
path页面路径
style 页面样式
data
:数据
methods
: 方法
computed
:计算
watch
:监听
directive
:指令
filter
:过滤
beforeCreate
created
可以使用this,没有dom
作用:
beforeMount
mounted
可以操作dom(节点)
作用:
beforeUpdate
updated
beforeDestroy
destroyed
作用:
onLoad
作用:
能够获取页面的参数
开启ajax,定时器,事件监听
像vue的created
onShow
作用:
播放媒体
onReady
作用:
获取节点信息
像vue的mounted
onHide
作用:
停止播放媒体
onUnload
作用:
停止事件监听与定时器
onPullDownRefresh
onReachBottom()
onShareAppMessage
onPageScroll
onShareTimeline
onBackPress
onNavigationBarButtonTap
导航 navigator
url 跳转页面的地址
打开类型 open-type
navigate跳转
redirect重定向(当前页面不留历史记录)
navigateBack返回
relauch 重启
switchTab 跳转底部栏
传递
url:path?name=mumu&age=18
接收
onLoad(option){}
option的值{name:“mumu”,age:18}
跳转
uni.navigateTo({url})
重定向
uni.redirectTo({url})
返回
uni.navigateBack()
底部栏切换
uni.switchTab()
重启
uni.reLaunch()
"borderStyle"
: “边框颜色”,
"selectedColor":
“字体选中后的颜色”,
"backgroundColor"
:“底部栏背景颜色”,
“color
”: “默认字体颜色”,
"list"
: [{ 选项列表
"pagePath"
: "页面路径",
"iconPath"
: “未选择时的图片(图片路径)”,
"selectedIconPath"
: “选择时的图片(图片路径)”,
"text"
: “底部选项文字”
},
// 配置tabbar导航栏
"tabBar": {
"borderStyle": "#eaeaea",
"selectedColor": "#f12525",
"backgroundColor": "#ffffff",
"color": "#444444",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "static/img/home.png",
"selectedIconPath": "static/img/home-hl.png",
"text": "首页"
},
{
"pagePath": "pages/cate/cate",
"iconPath": "static/img/type.png",
"selectedIconPath": "static/img/type-hl.png",
"text": "分类"
},
{
"pagePath": "pages/member/member",
"iconPath": "static/img/ceo.png",
"selectedIconPath": "static/img/ceo-hl.png",
"text": "会员"
},
{
"pagePath": "pages/Cart/Cart",
"iconPath": "static/img/cart.png",
"selectedIconPath": "static/img/cart-hl.png",
"text": "购物车"
},
{
"pagePath": "pages/mine/mine",
"iconPath": "static/img/mine.png",
"selectedIconPath": "static/img/mine-hl.png",
"text": "我的"
}
]
},
底部选项**
最多设置5个
,最少2个
**
getApp
01 在App.vue
定义globalData:{num:100}
02 要使用的页面获取app
var app = getApp()
03获取globalData的值
onShow(){
this.num = app.globalData.num
}
04 更新globalData值
addNum(){
app.globalData.num++;
this.num = app.globalData.num
}
getCurrentPages
var page = getCurrentPages();
uni.navigateBack({delta:page.length})
获取当前的页面栈,是一个数组(1-5)
page[page.length-1]
获取当前页面的信息(不要去修改)
不同的平台展示不同
特性
与功能
条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。
写法:以 #ifdef
或 #ifndef
加 %PLATFORM%
开头,以 #endif
结尾。
#ifdef:if defined
仅在某平台存在#ifndef:if not defined
除了某平台均存在%PLATFORM%
:平台名称<!-- #ifdef H5 -->
**内容**
<!-- #endif -->
APP
—— App端
H5
—— 网页
MP
—— 小程序
MP-WEIXIN
—— 微信小程序
/* #ifdef APP */
.active{color:red}
/* #endif */
// #ifdef APP-PLUS
uni.showModal({
title:"你好App用户"
})
// #endif
pages.json
“style”:{
"h5":{
"titleNView":{
"titleText":"我是H5"
}
},
"app-plus": {
"titleNView":false //隐藏导航栏
}
}
// #ifdef MP-WEIXIN || APP
{
"path":"pages/condition/we",
"style":{
"navigationBarTitleText": "小程序专有页面"
}
},
// #endif