uni-app个人总结

news2024/9/25 17:22:16

uni-app是什么?

        uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台

Uni-app的优势

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

Uni-app的功能框架图

 涉及名词介绍:

  • mpvue是一个使用Vue.js开发小程序的前端框架。
  • H5+:隶属于工信部下属的html5中国产业联盟,是中国HTML5产业联盟的扩展规范基于HTML5扩展了大量调用设备的能力,使得web语言可以原生语言一样强大
  • nvue:在App端,如果使用vue页面,则使用webview渲染;如果使用nvue页面(native vue的缩写),则使用原生渲染。一个App中可以同时使用两种页面,比如首页使用nvue,二级页使用vue页面,使用nvue可以提升app加载性能。
  • native.js:android和ios原生的api,虽然H5+已经为我们封装了常用api,但是平台原生的api多达上万个,对于个别的api就需要通过native.js进行调用。
  • uni-sdk:有一些交互操作对交互性能要求很高,不适合使用js去运行,比如摄像头的实时滤镜。uni支持原生与uni进行混合编码开发。

数据绑定:

        在这里uni-app的数据绑定的风格和vue是完全一致的,通过{{}}来加载定义在data中的数据,也可以通过v-bind对属性进行绑定,这里我们就不在进行过多的介绍了。大家沿用vue的语法就可以了。

生命周期:

        这里uni的生命周期函数采用了小程序的生命周期和vue的生命周期相结合的方式,针对界面和应用的生命周期采用的绝大多数是小程序的生命周期,针对组件的生命周期采用的是vue的生命周期。

 应用的生命周期

        uni-app 支持如下应用生命周期函数:

  函数名

说明

  onLaunch

当uni-app 初始化完成时触发(全局只触发一次)

  onShow

当 uni-app 启动,或从后台进入前台显示

  onHide

当 uni-app 从前台进入后台

  onError

当 uni-app 报错时触发

  onUniNViewMessage

对 nvue 页面发送的数据进行监听,可参考 nvue 向 vue 通讯

  onUnhandledRejection

对未处理的 Promise 拒绝事件监听函数(2.8.1+)

  onPageNotFound

页面不存在监听函数

  onThemeChange

监听系统主题变化

页面的生命周期

        uni-app 支持如下页面生命周期函数:

  函数名

说明

  onInit

监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad

  onLoad

监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考示例

  onShow

监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面

  onReady

监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发

  onHide

监听页面隐藏

  onUnload

监听页面卸载

  onResize

监听窗口尺寸变化

  onPullDownRefresh

监听用户下拉动作,一般用于下拉刷新,参考示例

  onReachBottom

页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体见下方注意事项

  onTabItemTap

点击 tab 时触发,参数为Object,具体见下方注意事项

  onShareAppMessage

用户点击右上角分享

  onPageScroll

监听页面滚动,参数为Object

  onNavigationBarButtonTap

监听原生标题栏按钮点击事件,参数为Object

  onBackPress

监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:onBackPress 详解。支付宝小程序只有真机能触发,只能监听非navigateBack引起的返回,不可阻止默认行为。

  onNavigationBarSearchInputChanged

监听原生标题栏搜索输入框输入内容变化事件

  onNavigationBarSearchInputConfirmed

监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。

  onNavigationBarSearchInputClicked

监听原生标题栏搜索输入框点击事件

  onShareTimeline

监听用户点击右上角转发到朋友圈

  onAddToFavorites

监听用户点击右上角收藏

事件定义和传参

        在uni中定义事件的方式和vue中是一致的,可以通过v-on的方式定义事件,也可以通过@进行事件的定义,传参方式也与vue一致。

        定义事件

	<button type="default" @click="handleEvent">点击事件</button>

        在script中声明点击事件

export default {
		data() {
			return {
				title: 'Hello tledu'
			}
		},
		onLoad() {

		},
		methods: {
			handleEvent(e) {
				console.log("点击了按钮")
				console.log(e)
			}
		}
	}

这里与我们熟悉的vue中的事件定义是完全一致的,这里的形参e就是事件元数据。

事件传参

<button type="default" @click="handleEvent('1234')">点击事件</button>

 这个时候,我们就会发现之前的形参e就变成了,这里的1234,我们就获取到了事件传递的参数,当然我们也可以传递多个参数,传递的方式也和vue中是一致的。

获取event数据

        在这里我们就会遇到这样的一个问题,我们进行事件传参之后就无法获取到事件元数据了,如果我们需要获取到事件元数据,需要使用$event,将事件元数据传递过来。

<button type="default" @click="handleEvent('1234',$event)">点击事件</button>
handleEvent(name,e) {
	console.log("点击了按钮")
	console.log(name)
	// 事件元数据
	console.log(e)
}

小结:

        在uni中使用事件的方式和vue中几乎是一致的,我们沿用我们在开发vue项目的开发习惯即可,uni会帮我们适配到各个平台上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在vue项目中封装axios

在哪里封装&#xff1a; 封装axios&#xff0c;src文件夹下新建一个util的文件夹&#xff0c;这个文件夹就是放一些工具的&#xff0c;可以在这里面封装axios。新建一个js文件&#xff0c;这里是在http.js文件里封装axios 封装axios的第一种方案&#xff1a;函数法 方法&#…

【Numpy】NumpyQuickStart

Numpy快速入门 Ding Jiaxiong【2022-12-17】 Gitee仓库:https://gitee.com/DingJiaxiong/machine-learning-study.git 文章目录Numpy快速入门先决条件导包基础知识举个栗子数组的创建数组的打印基本操作通用功能索引切片和迭代形状操作更改数组的形状将不同的数组堆叠在一起将一…

【进阶C语言】什么?你居然还不知道结构体可以实现位段?一文带你速通位段结构的使用

目录 &#x1f929;前言&#x1f929;&#xff1a; &#x1f92f;正文&#xff1a;位段&#x1f92f;&#xff1a; 1.位段概述&#xff1a; 2.位段的内存分配&#xff1a; 3.位段的跨平台问题&#xff1a; 4.位段的应用&#xff1a; &#x1f973;总结&#x1f973;&#x…

[附源码]Node.js计算机毕业设计好又多百货商业广场有限公司自助收银操作系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

三面美团测开岗,HR 现场直接发 offer,他是横着走出来的

前情提要 这是一个发生在我朋友身上的真实事情&#xff1a; 这里就叫他程序员 Y 吧。 程序员 Y 工作不到两年&#xff0c;周末在朋友圈发了个喜报&#xff0c;准备入职美团。 之后&#xff0c;我就带着祝福跟 Y 聊了许久&#xff0c;聊天的内容就是具体了解一下他面试的过程…

事业编招聘:气象局2023年度公开招聘公告

宁夏回族自治区气象局2023年度公开招聘应届高校毕业生公告&#xff08;气象类&#xff09; 根据《事业单位人事管理条例》《事业单位公开招聘人员暂行规定》和《气象部门事业单位公开招聘应届高校毕业生管理办法&#xff08;试行&#xff09;》等有关规定和工作需要&#xff0…

C++ 面向对象

C 面向对象&#xff0c;内存管理&#xff08;未完。。。&#xff09; 对象内存模型 类型转换 dynamic_cast type_info 多态 虚函数 override final虚表结构 运行时类型信息&#xff08;RTII&#xff09;基类析构函数必须为虚函数&#xff0c;否则会有内存泄漏的危险继承有两…

GitHub 推出对所有公共存储库的免费秘密扫描

GitHub 正在推出对其代码托管平台上所有公共存储库的免费扫描公开秘密&#xff08;例如凭据和授权令牌&#xff09;的支持。 秘密扫描是一种安全选项&#xff0c;组织可以启用它以进行额外的存储库扫描&#xff0c;以检测已知类型的秘密的意外暴露。 它通过匹配合作伙伴和服务…

【Java编程系列】Mybatis的Interceptor注入yml自定义变量,多种实现方式

1、前言 当前有一个任务&#xff0c;需要将mybatis的sql进行拦截过滤处理&#xff0c;而拦截处理时&#xff0c;需要有一些白名单放行的配置方法名路径。所以&#xff0c;这里使用到了yml的配置文件来配置变量路径&#xff0c;而后引入拦截器做动态放行。 2、注入自定义变量方式…

5点起床,一直干到11点的外卖小哥转行程序员,入职起薪12K

“我是要成为卷王的男人”是95后的小魏的座右铭&#xff0c;曾经的他5点起床&#xff0c;10分钟洗漱完毕就开始了一天的工作—送外卖。是的&#xff0c;曾经的他是万千外卖小哥的其中一员。 19年毕业的小魏学的是土木工程&#xff0c;曾经他也在工地待过&#xff0c;风尘仆仆却…

教程!!!!!

使用门槛&#xff1a;需要自行准备能开全局代理的科学工具 好评赠送免费科学工具&#xff0c;也可以自己准备科学工具。 下单以后&#xff0c;我们会发送一串账号密码给您。如图&#xff1a; 其中卡号就是chatgpt的账号&#xff0c;密码就是chatgpt密码。 第一步&#xff1…

星火计划学习笔记——第八讲Apollo控制模块解析与实践1

文章目录1. 控制理论简介1.1 控制的作用1.2 自动驾驶控制的目标1.3自动驾驶控制器的设计2. 汽车运动学与动力学2.1 常用的自动驾驶控制算法2.2 车辆运动学模型 Kinematics2.3 车辆动力学模型 Dynamics3. Apollo控制模块3.1 Apollo控制模块3.2 规划与控制相配合3.3 Apollo控制模…

零基础学习编程,选择什么编程语言比较合适?

随着互联网的兴起&#xff0c;越来越多的人想要学习编程&#xff0c;却不知道该从哪开始学&#xff0c;小编就通过以下几点给大家分析一下&#xff0c;零基础入门学习编程&#xff0c;该如何选择编程语言。 1、哪一门语言容易入门&#xff01; 所有语言的知识体系分为三大块&…

SAP ABAP 物料主数据的视图维护状态

SAP ABAP 物料主数据的视图维护状态 引言&#xff1a; 物料主数据的视图维护状态会经常使用&#xff0c;是物料主数据批量创建/修改的逻辑路由。 关键字&#xff1a;SAP ABAP VPSTA PSTAT T132T 文章目录SAP ABAP 物料主数据的视图维护状态1. 技术说明2. 维护状态3. 维护记录…

Linux——实用指令

帮助指令 man 获得帮助信息 基本语法 man [命令或配置文件] 注意&#xff1a;命令可以组合使用&#xff0c;比如ls -al&#xff0c;ls -la help 获得shell内置命令的帮助信息 基本语法 help命令 时间日期类 date指令 显示当前日期 基本语法 date&#xff08;显示…

【细胞分割】原子力显微镜图像分析【含GUI Matlab源码 1371期】

⛄一、AFM简介 理论知识参考文献&#xff1a;原子力显微镜&#xff08;AFM&#xff09;图像的计算机辅助分析 ⛄二、部分源代码 function varargout AFManalysis(varargin) % AFMANALYSIS M-file for AFManalysis.fig % AFMANALYSIS, by itself, creates a new AFMANALYSIS…

【图像处理】高效斑点特征提取技术研究(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

10年经验Python老司机分享:转行如何自学Python并且找到工作?

目前信息化产业发展势头很好&#xff0c;互联网就成为了很多普通人想要涉及的行业&#xff0c;因为相比于传统行业&#xff0c;互联网行业涨薪幅度大&#xff0c;机会也多&#xff0c;所以就会大批的人想要转行来学习Python开发。 零基础学习Python必须明确的几点&#xff1a; …

5个千兆网口,将有什么样高速网络传输体验?——米尔MYD-J1028X开发板实测分享

本篇测评由电子工程世界的优秀测评者“HonestQiao ”提供。 此次的板卡测试&#xff0c;是米尔MYD-J1028X开发板的高速网络数据传输测试体验。 01 本次测试的主角 米尔MYD-J1028X开发板提供了5个超级给力的最高支持千兆网络接口&#xff0c;具体如下&#xff1a; 通过查看官…

基于AD936X+Intel FPGA的射频方案

基于ADI AD936X和Intel Cyclone V FPGA的射频方案&#xff0c;适合于无线通信基础设施、防务电子系统、RF测试设备和仪器以及通用软件定义无线电平台等应用。 关于ADI AD936X系列射频收发器 AD936X系列的工作频率范围覆盖从70 MHz到6 GHz。它是一系列完整的无线电设计&#x…