uni-app的笔记
解释
官网 https://uniapp.dcloud.net.cn/
由dcloud 公司开发的 多端融合框架
次开发 多端运行
竞品:apiCloud ,appCan ,Codova
技术架构
Vue语法+小程序的api
端Hybrid混合开发
- App端
HTML+
nvue(原生view)
native.js(js原生沟通的桥梁)
weex
内置ios/安卓的模块使用
2. H5端
h5专用api
各种小程序(微信为主)
多端运行
vue语法
模板语法
文本渲染
{{表达式}}
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> <view @click="say"></view>
事件传参
不写参数@click=“say”
等同于 @click=“say()”
等同于@click=“say($event)”
$event 是一个固定写法 代表事件对象@click=“doit(str)” doit(str="你好"){ uni.showModal({title:str}) }
事件对象
$event/e function say(e){ }
target目标对象
dataSet 组件传参<view :data-title="title" @click="say"> function say(e){ e.target.dataset.title }
uni-app页面
页面配置pages.json
globalStyle全局样式
- 默认页面的样式会应用全局样式页面写了style 配置,那么用的配置覆盖全局的配置
pages页面
- path页面路径
- style 页面样式vue选项
data数据
methods方法
computed计算
watch监听
directive指令
filter过滤uni-app的生命周期
Vue的生命周期
- 创建
- beforeCreate
- created
可以使用this,没有dom
作用:- 初始数据
- 注册监听事件
- 开启定时器
- ajax请求
- 挂载
- beforeMount
- mounted
可以操作dom(节点)
作用:- 操作dom
- ajax请求
- 更新
beforeUpdate
updated - 卸载
beforeDestroy- 作用:
- 移除事件监听
- 移除停止定时器
- destroyed
- 作用:
小程序的生命周期
- onLoad加载
能够获取页面的参数
开启ajax,定时器,事件监听
像vue的created - onShow显示
播放媒体 - onReady准备
获取节点信息
像vue的mounted - onHide 后台运行
停止播放媒体 - onUnload 卸载
停止事件监听与定时器
- onLoad加载
小程序的全局方法
onPullDownRefresh
下拉刷新
onReachBottom()
触底更新
onShareAppMessage
右上角分享
onPageScroll
页面滚动
onShareTimeline
分享到朋友圈app的全局方法
onBackPress
手机的返回键被点击
onNavigationBarButtonTap
导航栏按钮被点击
组件表单
1. button按钮
type
. primary主要
. warn警告
. default 默认
size=“mini”
disabled 是否可用
2. input
. value值
. v-model对表单双向绑定
. @change=“$event.detail.value”
. placeholder 提示文本
3. picker
. mode模式
. time时间
. date 日期
. region地区
日期
. start=“09:01”
. end=“21:01”
value值@change=“$event.detail.value”
- slider滑块
value 值
max 最大
min 最小
@change=“$event.detail.value”
- slider滑块
路由
路由组件
navigator导航
1. url 跳转页面的地址
2. open-type
打开类型
- navigate跳转
- redirect重定向(当前页面不留历史记录)
- navigateBack返回
- relauch 重启
- switchTab 跳转底部栏路由传参
传递url:path?name=mumu&age=18
接收
onLoad(option){} option的值{name:"mumu",age:18}
路由api
uni.navigateTo({url})跳转
uni.redirectTo({url})重定向
uni.navigateBack()返回
uni.switchTab()底部栏切换
uni.reLaunch()重启路由配置
tabBar
color
selectedcolor
list
pagePath
iconPath
selectedIconPath
text获取当前页面getApp
- 在App.vue定义globalData:{num:100}
- 要使用的页面获取app
var app = getApp() - 获取globalData的值
onShow(){
this.num = app.globalData.num
} - 更新globalData值
addNum(){
app.globalData.num++;
this.num = app.globalData.num
}
获取页面栈getCurrentPages
var page = getCurrentPages();
获取当前的页面栈,是一个数组(1-5)uni.navigateBack({delta:page.length})
page[page.length-1] 获取当前页面的信息
(不要去修改)
条件编译
目的:不同的平台展示不同特性与功能
模板条件编译
格式<!-- #ifdef H5 --> 内容 <!-- #endif -->
条件
- APP App端
- H5网页
- MP小程序
MP-WEIXIN微信小程序
css条件编译
/* #ifdef APP */.active{color:red}/* #endif */
js条件编译
// #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
###vuex
初始化’
store/index.jsimport Vuex from 'vuex'import Vue from'vue'Vue.use(Vuex)export default new Vuex.store({state,mutations,actions,getters,modules})main.jsimport store from './store/index.js 'Vue.prototype.$store = store;
vuex的模块
state存放数据
mutations更新数据(唯一方式)
actions动作(异步api操作)
getters计算,从现有的state计算出新的数据
modules模块
state定义数据
state: {gTitle:{text:"你好vuex",color:"#000",fontSize:"24px",background:"#f70"}}
在页面中使用$store.state.gTitle.text
修改只能通过mutations
组件中简写
import {mapState} from 'vuex'computed:{ ...mapState(["gTitle"])} <view :style="gTitle">
mutations改变数据
setFontSize (state,data){state.gTitle.fontSize=data+"px"}
在页面中使用this.$store.commit(“setFontSize”,80)
简写
import {mapMutations} from 'vuex'methods:{| ....mapMutations(["setFontSize"])}this.setFontSize(100)
actions异步操作
定义actions:{get]ok(context,data){uni.request({url:"http://520mg.com/millist.php",success:res=>{context.commit("set]oks",res.data.result);}})}
在页面中使用
this.$store.dispatch("getJok",{page:1})
简写
导入import {mapActions} from 'vuex'计算methods:{...mapActions["get]ok"]}
使用
this.getJok
getters计算
getters:{"totalLen":function(state){ return xxx}}
在页面中使用
this.$store.getter.totalLen
简写
import {mapGetters} from 'vuex'computed:{| ...mapGetter(["totalLen"])}this.totalLen
分享
微信小程序分享onShareAppMessage(){}
分享给好友
onShareTimeline(){}
分享到朋友圈
app分享
uni.share({
provider: "weixin", //提供商
scene: "WXSceneSession", //微信聊天
type: 0,
href: "http://dida100.com",
})
分享准备manifest.json
模块配置
Share
在微信开发平台注册获取appid
https://open.weixin.qq.com/
支付
app的支付
准备工作
支付厂商
获取id
微信:微信支付平台
https://pay.weixin.qq.com/
支付宝
打包时候
manifest.json
app模块配置
payment支付
代码
01 获取支付厂商
uni.getProvider()uni.getProvider({service: "payment"})
02 用户发起支付
requestPayment(item,index){}
03 获取订单信息
getOrderInfo(item.id)
04 发起支付api
uni.requestPayment({
provider:item.id, //提供商
orderInfo: orderInfo, //订单信息
})
小程序的支付
01 用户的点击 发起支付
async weixinPay()
02 获取openid
本地存储 ||loginMpWeixin
获取code
uni.login({})
获取openid
uni.request({})
03 获取订单信息
this.getOrderInfo('wxpay')
04 根据订单信息发起支付
uni.requestPayment({...orderInfo})
打包html代码上传服务器
配置相对地址
manifest.json
web配置
运行的基础路径 ./
发行->发到网站-PC
unpackage>dist>build>H5
上传服务器
flashFXP工具上传
打包微信小程序上传
- 配置id
manifest.json 微信小程序配置 - 单击发行
发行->小程序微信 - 进入小程序上传
小程序右上角上传(先测试,真机测试) - 微信提交审核
mp.weixin.qq.com
版本管理
审核
审核通过发布
认真填写隐私协议 - 如果网络请求
配置域名
必须是https开头
开发管理
服务器设置
服务器域名
1. request合法域名
uni.request,wx.request 请求的域名必须事先定义好
2. uploadFile合法域名
如果有上传也要配置上传的域名
3. downloadFile合法域名
配置下载域名 - 搞钱
01 累计用户操作1000 可以称为流量主
开通广告(视频激励广告最挣钱)
let rewardedVideoAd = null
//定义
App打包上传应用商店
- 应用商店
- 华为
opple
vivo
小米 - 现在只有华为可以个人上传
其他都必须是公司 - 个人上传
app的版权证明(600-1500) - 最难:应付国家的隐私条例
应用商店的隐私审核
uni-app的笔记相关推荐
- HBuilder X ——Uni app 学习笔记(一)
HBuilder X --Uni app 学习笔记(一) 1.pages.json配置 *pages数组中第一项表示应用启动页,数组中其他项为项目中所有页面路径. enablePullDownRefr ...
- vant 验证手机号_【uni app】vant weapp的引入和部分详细调用(表单输入框、验证码、弹出层搭配选择器、地图)...
本次小程序的开发使用uni app+vant weapp,vant weapp如何引用和部分组件使用方法如下 引入 在github(https://github.com/youzan/vant-wea ...
- 切换 uniapp_万能前端框架uni app初探03:底部导航开发
前言 本节我们使用uni app的底部导航功能,点击不同tab会显示不同页面,这个功能在实际项目开发中几乎是必备的. 一.基础知识 1.tabBar 如果应用是一个多 tab 应用,可以通过 tabB ...
- uni app map 地图 漂浮问题及方案
uni app map 地图 漂浮问题及方案 文章页有图片导致的问题,图片没加载出来,导致文章内容高度不固定,如果图片没加载出来,高度就是0,如果此时开始加载map,那么map就在那里加载,map原生 ...
- uni.app H5(微信公众号定位) uni.getLocation
最近在开发公众号,由于之前经常使用uni,app写APP,索性就用uni.app来开发公众号了, 不过也遇到了一个问题,就是在公众号的首页要获取用户的定位.我看了看官网的API 有个uni.getLo ...
- uni app中使用图表
关于在uni app中运用图表 今天写项目,需要在uni app中使用图表,我使用的是ucharts. 具体操作如下 1.下载 ucharts可以直接在uni app的插件市场下载安装. 先在插件市场 ...
- uni app 自动化索引列表
uni app 自动化索引列表,官方推荐的第三方插件 https://ext.dcloud.net.cn/plugin?id=375 [{"letter": "A&quo ...
- HbuilderX:uni app踩坑之uView-ui
HbuilderX:uni app踩坑之uView-ui 最近在自学uniapp,想找一个ui框架提高一下学习和开发的效率,于是就网上冲浪,浪来浪去,最后选择了uView-ui这款.其实有些框架我是有 ...
- 得到app文稿导出_得到app学习笔记作为知识付费者,如何把所学内容快速输出?...
原标题:得到app学习笔记作为知识付费者,如何把所学内容快速输出? 零.引子 昨天看到老公票圈更新了一条段子: 我就是那个伪勤奋者,在知识焦虑的胁迫下,这些年买了不知多少视频.微课.教程还有得到专栏. ...
- uni App+H5 实现人脸识别
uni App+H5 实现人脸识别 通过h5的视频video管理设备摄像头(不要关),在打开视频摄像时快照截取人脸照片传送到后台通过API接口调用百度人脸识别结果并通过返回数据解析自己业务需求. 1. ...
最新文章
- [Node] 重要外部模块
- 对个人站长职业前景的探讨之路在何方?
- SPRING CLOUD服务网关之ZUUL
- powerCat进行常规tcp端口转发
- 深度学习(七十一)3D CNN时空特征学习
- Centos7配置Samba服务实现与Windows文件共享
- ASP.NET中常用的优化性能的方法(转贴,Icyer收集整理)
- linux查看系统版本_Windows电脑如何查看电脑系统位数及版本号
- svn创建分支和合并
- limesurvey_LimeSurvey简介:一个开源,功能丰富的轮询平台
- 天猫、抖音各大电商平台关键词调用、价格监控、竞价API
- 测试用例设计思维导图
- vue高德多条路线规划+带途径节点多组多个maker text标签创建+各路线颜色区别
- 公鸡每只值5文钱,母鸡每只值3文钱,而三只小鸡值一文钱。用100文钱买100只鸡,问:公鸡,母鸡,小鸡各有多少只?
- 产业链图谱:2021年中国5G产业链图谱|产业链全景图
- 不吹不黑,网络安全工程师年薪30万是真的吗?
- JavaScript——选择框练习
- 一文看懂海明校验码及其计算方法(详细总结)
- android sim 卡7816,采用SO7816标准规范的SIM卡读卡器的研究
- 《好玩游戏物品清单》实现
热门文章
- docker的安装和阿里云加速
- 1个div,你能用CSS常规属性绘制:正3、4、5、6、7、8边形吗?
- 干货 | Chrome 浏览器+Postman还能这样做接口测试?
- Pycharm专业版直白简易安装流程
- 【云服务月刊】2018年第5期:阿里云重磅宣布文档开源
- Composer 下载 alibabacloud 用法
- 二十年遇到八句话 http://pbaby.blogchina.com/2443158.html
- 这位阿里程序媛有点拼,爬8米高的锅炉,竟是为了这个!
- 上海远丰助力企业踏上电商转型之路
- 在 Ubuntu Linux 上安装 Maya 2020