uni-app常用知识点

一、对uni-app的理解

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到多个平台。

Uni-app的优势
1、跨平台更多,真正做到一套代码多端发行,支持原生代码混写和原生sdk集成。
2、运行体验更好。组件、api与微信小程序一致,兼容weex原生渲染。
3、通用技术栈,学习成本更低。Vue的语法,微信小程序的api,对于前端开发人员来说更容易上手。
4、开放生态,组件更丰富。支持通过npm安装第三方包;支持微信小程序自定义组件及sdk;兼容mpvue组件及项目;app端支持与原生混合编码;

二、对事件总线的理解

事件总线像是所有组件共用相同的事件中心,可以向该中心注册发送事件或接收事件,所以组件都可以上下平行地通知其他组件。事件总线多用于兄弟组件的通信。

触发事件 uni.$emit(eventName,OBJECT) 在uni中可以通过uni.$emit(eventName,OBJECT)来触发全局的自定事件。附加参数都会传给监听器回调。
监听事件 uni.$on(eventName,callback) 监听全局的自定义事件。事件可以由 uni.$emit 触发,回调函数会接收所有传入事件触发函数的额外参数。
只监听一次 uni.$once(eventName,callback) 监听全局的自定义事件。事件可以由 uni.$emit 触发,但是只触发一次,在第一次触发之后移除监听器。
移除监听 uni.$off([eventName, callback]) 移除全局自定义事件监听器。
uni.$emit('update',{
    
    msg:'页面更新'})

uni.$on('update',function(data){
    
    
    console.log('参数 msg 为:' + data.msg);
})

uni.$once('update',function(data){
    
    
    console.log('参数 msg 为:' + data.msg);
})

uni.$off()//移除所有事件监听器

移除监听注意事项
1、如果没有提供参数,则移除所有的事件监听器;
2、如果只提供了事件,则移除该事件所有的监听器;
3、如果同时提供了事件与回调,则只移除这个回调的监听器;
4、提供的回调必须跟$on的回调为同一个才能移除这个回调的监听器;

三、uni-app中跨平台设置代码----条件注释

条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。

以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。
#ifdef:if defined 仅在某平台存在
#ifndef:if not defined 除了某平台均存在
%PLATFORM%:平台名称

条件编译 说明
#ifdef APP-Plus 仅出现在 App 平台下的代码
#ifndef H5 除了 H5 平台,其它平台均存在的代码
#ifdef ifdef H5 || MP-WEIXIN 在 H5 平台或微信小程序平台存在的代码(这里只有||,不可能出现&&,因为没有交集)
%PLATFORM%的值 平台
APP-PLUS App
APP-PLUS-NVUE或APP-NVUE App nvue
H5 H5
MP-ALIPAY 支付宝小程序
MP-BAIDU 百度小程序
MP-TOUTIAO 字节跳动小程序
MP-QQ QQ小程序
MP-360 360小程序

四、uni-app中路由跳转和传参

跳转方式 特点
uni.navigateTo 保留当前页面,只能跳转非tabBar页面
uni.switchTab 关闭所有非tabbar页面,只能打开tabbar页面
uni.redirectTo 关闭卸载当前页面,只能打开非tabBar页面
uni.reLaunch 关闭卸载所有页面,可以打开任意页面
uni.navigateBack 返回上一页面 delta:返回页数
<navigator > open-type属性决定跳转方式

传参
路由跳转的时候可以通过?拼接参数。

<navigator url="../message/message?id=99">界面跳转传参</navigator>

//获取路由参数,在界面的onLoad方法中获取
onLoad(options) {
    
    
	console.log(options)
},

五、uni-app中生命周期

界面和应用的生命周期采用的绝大多数是小程序的生命周期
组件的生命周期采用的是vue的生命周期。

1、app
在App.vue中

扫描二维码关注公众号,回复: 16710248 查看本文章
生命周期函数 介绍
onLaunch 当uni-app 初始化完成时触发(全局只触发一次)
onShow 当 uni-app 启动,或从后台进入前台显示
onHide 当 uni-app 从前台进入后台
onError 当 uni-app 报错时触发
onUniNViewMessage 对 nvue 页面发送的数据进行监听
onUnhandledRejection 对未处理的 Promise 拒绝事件监听函数
onPageNotFound 页面不存在监听函数
onThemeChange 监听系统主题变化

2、pages
pages的index.vue中
参考官网 https://uniapp.dcloud.net.cn/tutorial/page.html#lifecycle

生命周期函数 介绍
onInit 监听页面初始化,其参数同 onLoad 参数触发时机早于 onLoad
onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参)
onShow 监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onReady 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
onHide 监听页面隐藏
onUnload 监听页面卸载
onResize 监听窗口尺寸变化
onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新
onReachBottom 页面滚动到底部的事件(不是scroll-view滚到底),触底
onTabItemTap 点击 tab 时触发,参数为Object
onShareAppMessage 用户点击右上角分享
onPageScroll 监听页面滚动,参数为Object
onNavigationBarButtonTap 监听原生标题栏按钮点击事件,参数为Object
onBackPress 监听页面返回
onNavigationBarSearchInputChanged 监听原生标题栏搜索输入框输入内容变化事件
onNavigationBarSearchInputConfirmed 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。
onShareTimeline 监听用户点击右上角转发到朋友圈
onAddToFavorites 监听用户点击右上角收藏

3、components
在components的component.vue中

生命周期函数 介绍
beforeCreate 在实例初始化之后被调用
created 在实例创建完成后被立即调用
beforeMount 在挂载开始之前被调用
mounted 挂载到实例上去之后调用
beforeUpdate 数据更新时调用
updated 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
beforeDestroy 实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

猜你喜欢

转载自blog.csdn.net/qq_50906507/article/details/128028611
今日推荐