uni-app DAY08

news2025/4/20 4:51:40

复习:

1、uni-app中常用组件

①内置组件:页面(page)、视图(view)、滚动视图(scroll-view)、文本(text)、富文本(rich-text)、图片(image)、输入框(input)、按钮(button)、导航器/超链接(navigator)、轮播(swiper)、拾取器/下拉菜单/选择器(picker)、单选按钮(radio-group/radio)、复选按钮(checkbox-group/checkbox)、视频(video)、地图(map)、摄像头(camera)
②扩展组件(uni-ui库):图标(uni-icons)、宫格(uni-grid)、卡片(uni-card)、导航条(uni-nav-bar)、日期格式化(uni-dateformat)、列表(uni-list/uni-list-item)、标题字(uni-title)、简单输入框(uni-easyinput)、弹出式对话框(uni-popup)
③自定义组件:卡片(zh-card)、导航条(zh-nav-bar)、返回顶部(zh-go-top)

2、uni-app中常用API

①五种页面跳转方法
②四种消息弹出框
③异步请求
④客户端存储的设置/读取/删除/清空
⑤获得全局App对象(App.vue): getApp( ) 项目中的功能类似于sessionStorage
⑥获得窗口/系统信息:
uni.getWindowInfo( ):同步执行,返回当前窗口的信息(屏幕尺寸、窗口尺寸、状态栏高度)——注意:大多数小程序都不支持
uni.getSystemInfo() / uni.getSystemInfoSync():异步或同步收集系统的各种信息(设备、操作系统、屏幕等各方面信息);此方法没有兼容性问题
⑦修改标题栏中的文本内容
uni.setNavigationBarTitle()
⑧返回顶部
uni.pageScrollTo( )
⑨请求客户端付款
uni.requestPayment( )

3、uni-app中的生命周期方法

第一组:整个应用级生命周期方法(App.vue):启动、显示、隐藏
第二组:页面级生命周期方法(pages):加载(onLoad(data))、显示、就绪、隐藏、卸载、滚动、滚动到底(onReachBottom)、下拉刷新(onPullDownRefresh)
第三组:组件级生命周期方法(components):创建、挂载、更新、卸载

一、uni-app中的模板
1、view:最简单的容器组件,相当于HTML中的div
2、text:最简单的文本组件,相当于HTML中的span
3、image:用于展示图片的组件,类似于HTML中的img
①默认image的尺寸都是320*240
②默认情况下,修改图片的宽度,高度不会自动等比例缩放
③可以指定mode=“widthFix”,实现“宽度固定,高度自动等比例缩放”
4、input:单行文本输入域

<input  type="键盘类型" password="是否显示密码"/>

5、button:按钮
6、navigator:导航器、超链接,用于实现页面跳转

相对地址: <navigator url="../findpwd/findpwd">  不带.vue
绝对地址: <navigator url="/pages/findpwd/findpwd">  不带.vue

7、swiper:轮播广告
8、picker:数据拾取器,功能类似于HTML中的select/option
9、radio-group>radio:单选按钮组

模板中实现数据绑定:
①内容绑定:

  <text>{{表达式}}</text>

②属性绑定:

  <any v-bind:属性名="表达式"/>
  <any :属性名="表达式"/>

③样式绑定:

  <any :style="{color:表达式, backgroundColor: 表达式}"/>

④事件绑定:

  <any v-on:click="处理方法"/>
  <any @click="处理方法(实参列表)"/>

⑤双向数据绑定:

  <input v-model="模型变量名"/>

⑥条件渲染:

  <any v-if="表达式"/><any v-elseif="表达式"/><any else/>
  <any v-show="表达式"/>

⑦列表渲染:

  <any  v-for="(item, idx) in 数组"  :key="idx"/>

二、uni-app中的样式

1、uni-app支持的尺寸单位:em、vw/vh、%、px、rpx
2、多个页面或组件共享的样式变量编写在 uni.scss
3、多个页面或组件共享的样式编写在 App.vue

三、uni-app中的脚本

1、五种路由跳转方法

三、uni-app中的脚本

1、五种路由跳转方法
2、四种提示框
①吐司对话框 —— 用于简单的提醒,非重要事件的提示

uni.showToast( ) 
②模态对话框 —— 用于严重的提示,甚至必须作出选择的提示
uni.showModal( )
③加载中对话框 —— 提示操作正在进行中
uni.showLoading( ) / uni.hideLoading()
④动作清单对话框 —— 让用户选择要执行的动作
uni.showActionSheet( )

3、读写客户端数据存储

在客户端存储数据 —— 类似于localStorage.setItem(k, v):
		uni.setStorage( key,  value,  success(){ } )  —— 异步保存
		uni.setStorageSync( key,  value )  ——  同步保存
读取客户端存储的数据 —— 类似于 let v = localStorage.getItem(k):
		uni.getStorage( key, success(value){ } )  —— 异步读取
		let value = uni.getStorageSync( key )  ——  同步读取
删除客户端存储的一个数据 —— 类似于 localStorage.removeItem(k):
		uni.removeStorage( key,  success(){ } )  —— 异步删除
		uni.removeStorageSync( key )  ——  同步删除
删除客户端存储的所有数据 —— 类似于localStorage.clear():
		uni.clearStorage( success( ){ } )  —— 异步删除
		uni.clearStorageSync( )  ——  同步删除

4、getApp( ):返回App.vue创建的全局App实例对象

四、uni-app应用中请求服务器端接口数据

uni-app使用uni.request()可以实现服务器端数据API的异步请求,编译后会转换为各平台的专有技术。uni.request( )的使用方法:

//没有请求主体的GET请求
let url = ""
let  [err,  res] = await  uni.request({ 
   url 
})
if(err){  处理请求错误 }
else { res.data就是响应消息主体 }	
//有请求主体的POST请求
let url = ""
let  [err,  res] = await  uni.request({ 
   url,
   method: 'POST',   //请求方法
   data: {k:v, ....}      //请求主体 
})
if(err){  处理请求错误 }
else { res.data就是响应消息主体 }

五、重点面试题:uni-app中的生命周期方法

第一组:应用程序级生命周期方法——App.vue:

onLaunch():应用程序启动,每个应用此方法只能调用一次
onShow():应用程序显示出来,可以多次调用
onHide():应用程序隐藏起来,可以多次调用

第二组:页面级生命周期方法——pages

onLoad():页面加载完成,类似于组件的mounted,每个组件只挂载一次;一般用于异步请求页面需要的数据
onShow():页面显示出来,可以多次调用
onReady():页面准备就绪,第一次挂载完成后,进场动画执行完成,可供用户使用
onHide():页面隐藏起来,可以多次调用
onUnload():页面卸载了,类似于组件的destroyed;一般用于释放页面所占用的资源,例如:定时器、WebSocket....
onPageScroll():页面滚动了
onReachBottom():页面滚动到底部了
onPullDownRefresh():页面在顶部下拉刷新了

第三组:组件级生命周期方法——components

beforeCreate() / created()
beforeMount() / mounted()
beforeUpdate() / updated()
beforeDestroy() / destroyed()

六、父子组件间传参

 父组件 => 子组件
//parent.vue
data: {age: 18}
<child  :childAge="20"  :childAge="age"/>
//child.vue
props: {
   childAge: { type: Number,    default:16,      required: true }
}
<text>{{childAge}}</text>
面试题:请问如何理解“Vue.js是单向数据流”这一概念?
父组件传递数据给子组件,子组件可以使用该数据,但是不能修改。

七、小知识:如何获取一个月份的开始时间和结束时间

  let  s   =  '2022-08'
   //计算该月份对应的开始时间
   let  startTime  =  new Date( s ).getTime( )
   //计算该月份对应的结束时间
   let  endTime  =  new Date('2022', '08',  0).getTime( )    //该月最后一天的0点
   let  endTime  =  new Date('2022', '08').getTime( )-1   //该月最后一天的下一天0点

   getTime() 获取时间戳

八、uni-app页面跳转和传参

  //pages/p1/p1
	uni.navigateTo({  
		url: '/pages/p2/p2?uname=yaya&age=18'
	})
  //pages/p2/p2
	onLoad( data ){
		clog( data )   //{uname: 'yaya',  age:'18'}   查询字符串数据会自动解析为对象
	}
	onLoad( {uname, age} ){		//对参数进行解构
		clog( uname, age )
	}

九、前端请求中的防抖

前端服务器端接口异步请求中,有些特别的情形:
①用户鼠标在页面中滑动,及时记录滑动坐标,发给服务器 onmousemove + ajax
②用户在搜索框中输入搜索内容,只要内容改变,及时发给服务器进行查询 oninput + ajax
客户端的事件可能频繁的密集发生(例如:1s发生好多次),如果在事件处理方法中立即提交请求,就会导致短时间内频繁的服务器端请求,造成服务器压力过大,且中间有很多无用的请求
解决方案:事件发生后,不要立即发起服务器端请求,而是等待一段时间(例如半秒钟等);如果这段时间内再次发生同一事件,取消之前的请求计划,重新再次计算半秒钟…直到最后,半秒钟之内没有发生同一事件,最终发起请求 —— 称为:debounce,抑制弹跳,防抖

防抖的核心代码:
let  timer = null               //全局变量,执行异步请求的定时器
function doEvent(){
   if(timer){
       clearTimeout( timer )    //如果之前还有未执行的任务,则取消该任务
   }
   timer = setTimeout( ()=>{
       //发起服务器端接口请求
   },  500 )
}

十、uni-app项目中使用地图

1、注意:不同的平台只能使用特定的地图服务商
在这里插入图片描述

2、在项目清单文件(manifest.json)中配置地图服务商提供的key

manifest.json  >  Web配置  > 地图和定位服务

3、在页面中直接使用<map>组件

<map  :longitude="经度"  :latitude="纬度"   :scale="15"></map>

4、在地图上添加标记点: <map :marker="Array">
5、监听标记点被点击事件: <map @markertap="">
6、调用地图提供的API:

<map id="myMap">
	let ctx = uni.createMapContext('myMap', this)
	ctx.moveToLocation( ... )

十一、全端可用的图表组件库:uChart

官网:https://www.ucharts.cn

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

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

相关文章

云弹性:它如何影响云计算?

云弹性是云计算最重要的特性之一。云弹性是指云提供商根据企业流程的需求向该流程提供资源的过程。云提供商拥有自动交付或删除资源的系统&#xff0c;以便为每个项目提供适当数量的资产。对于云用户来说&#xff0c;他们将被赋予足够的权力来运行他们的工作流&#xff0c;而不…

Java高级——Graal编译器介绍

Graal编译器介绍 Graal编译器由Java实现&#xff0c;支持提前编译和即时编译 JDK9推出Java虚拟机编译器接口&#xff08;Java-Level JVM CompilerInterface&#xff0c;JVMCI&#xff09;&#xff0c;将Graal从HotSpot代码中独立出来&#xff08;即可外部挂载&#xff09; 构…

Klarf 文件可视化工具

1.技术框架 1.1 前端&#xff1a; Vue3 网页版Electron Quasar 可生成 EXE、APK 等客户端Element-Plus 控件axios 跨域 1.2 后端&#xff1a; Flask 提供接口 2. Web 版和客户端版 2.1 Web 版页面 2.2 客户端界面 2.3 使用流程 在 SenseTools-Klarf-Parser/data/test_f…

小程序开发,低成本运营教程

近年来&#xff0c;小程序DAU呈现出爆发式增长的趋势&#xff0c;相比app来说它具有一定的优势&#xff0c;不占用手机内存&#xff0c;在应用内就可使用&#xff0c;对用户来说非常便利。 另外&#xff0c;由于小程序的开发门槛和成本都比较低&#xff0c;企业还能依托平台获…

ImmunoChemistry丨ICT艾美捷ELISA平板盖说明书

使用ImmunoChemistry艾美捷ELISA平板盖减少样品蒸发并防止免疫测定培养期间的污染。ELISA平板盖是透明的粘性塑料片&#xff0c;用于在培养分析时覆盖和密封微量滴定板孔。 ImmunoChemistry Technologies简称"ICT",研究工具众多&#xff0c;包含细胞蛋白酶、细胞凋亡…

【MyBatis】订单商品数据模型分析

1. 数据模型分析思路 每张表记录的数据内容 分模块对每张表记录的内容进行熟悉&#xff0c;相当于你学习系统需求&#xff08;功能&#xff09;的过程。 每张表重要的字段设置 非空字段、外键字段 数据库级别表与表之间的关系 外键关系 表与表之间的业务关系 在分析表与表之…

【环境配置】使用Docker搭建LAMP环境

这篇文章不是介绍DOCKER是什么&#xff0c;也不是阐述DOCKER的核心&#xff1a;镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者&#xff0c;在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境&#xff0c;这是其一&#…

【代码审计-PHP】基于Thinkphp框架开发的

目录 一、Thinkphp基本结构 1、框架目录 2、判断框架、版本 3、入口文件 4、资源文件 5、调试开关 6、URL路由 二、基本函数 1、请求 2、交互&#xff1a; 3、响应&#xff1a; 三、危险函数 四、已有漏洞 五、漏洞检测工具 六、工具 一、Thinkphp基本结构 1、框…

Django笔记

Cookie中的数据是由键值对构成&#xff0c;每一个cookie就是一个键值对&#xff1b;Cookie拥有有效期&#xff1a; max_age&#xff08;单位是秒&#xff09;就用来决定 Cookie 的有效期&#xff1b;path决定Cookie的有效范围&#xff08;当path为"/"时&#xff0c;即…

跟我学Python图像处理丨带你入门OpenGL

摘要&#xff1a;介绍Python和OpenGL的入门知识&#xff0c;包括安装、语法、基本图形绘制等。本文分享自华为云社区《[Python图像处理] 二十七.OpenGL入门及绘制基本图形&#xff08;一&#xff09;》&#xff0c;作者&#xff1a;eastmount。 一.OpenGL入门知识 1.什么是Op…

冬季,该如何对扬尘进行管理?

冬季降水少&#xff0c;大风天气多&#xff0c;如今随着各个城市的全面放开&#xff0c;城区里面车辆来来往往更多&#xff0c;所以非常容易产生道路扬尘污染。扬尘污染不仅会降低空气质量&#xff0c;影响居民的正常出行&#xff0c;而且还会对人们的身体尤其是呼吸系统产生健…

Java 注解(Annotation)(上)

Java 注解&#xff08;Annotation&#xff09; Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同&#xff0c;Java 标注可以通过反射获取标注内容。在编译器生成类文件时&#xff0c;标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容&#xff0c…

设计模式,究竟有着怎样的力量?(初读修言老师设计模式)

每一个模式描述了一个在我们周围不断重复发生的问题&#xff0c;以及该问题的解决方案的核心。这样&#xff0c;你就能一次又一次地使用该方案而不必做重复劳动。 —— Christopher Alexander 设计模式是“拿来主义”在软件领域的贯彻实践。和很多人的主观臆断相反&#xff0c;…

HBase的Region Split详解

什么是Region Split region split是hbases水平扩展一个重要因素。随着数据的不断写入&#xff0c;将一个region切分为两个小region&#xff0c;并将切分后的region放在不同的节点上&#xff0c;以达到将负载进行均衡到其他节点。 Region Split的流程 在zookeeper的/hbase/regio…

从股票市场选择配对的股票:共同趋势协整模型

让我们回忆一下共同趋势模型。给定两个时间序列和&#xff0c;我们有 其 中和是随机游走&#xff0c;即非平稳部分&#xff0c;或者说共同趋势部分(common trends)。以及是平稳的部分&#xff0c;即特定部分&#xff08;specific component&#xff09;。如果两个时间序列是协整…

归并排序应用——剑指 Offer 51. 数组中的逆序对

文章目录题目1.错误示范2. 分析逆序对的判断统计出某个数后面有多少个数比它小举例(完整过程解析)第一次循环第二次循环第三次循环第四次循环第五次循环循环结束的两种存在情况3. 正确代码4.递归展开图题目 1.在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&am…

全球发展,布局城市核心区域,放眼世界看郁锦香酒店有多百变

随着消费需求的不断升级&#xff0c;酒店消费场景也进行着多元化的发展&#xff0c;城市高端度假品牌正积极溯源消费需求&#xff0c;寻得品牌文化延伸的可靠路径。同时&#xff0c;各大酒店品牌也加快在市场布局的脚步&#xff0c;希望通过布局城市核心区域获得可持续发展的更…

鸿蒙所谓的软总线

鸿蒙网上资料 分布式软总线组件 简介 由于设备通信方式多种多样(WIFI、蓝牙等)&#xff0c;不同通信方式使用差异大&#xff0c;问题多。同时通信链路的融合共享和冲突无法处理。分布式软总线实现近场设备间统一的分布式通信能力管理&#xff0c;提供不区分链路的设备发现连…

IFR202型红外雨量传感器

IFR202型红外雨量传感器是专用于测量降雨量的仪器&#xff0c;拥有知识产权&#xff0c;采用光学扫描原理&#xff0c;实现雨滴大小及雨滴数量的实时扫描&#xff0c;进而计算出降雨量输出。支持脉冲输出与RS232输出当使用脉冲输出功能时&#xff0c;可以完全替代翻斗式雨量计。…

【电巢】三星核心供应商名单公布,删除京东方新增13家(附103家厂商名录)

前言 11月30日&#xff0c;据韩媒The ELEC报道&#xff0c;三星在最新公布的「供应商名单」中&#xff0c;悄然删除了国内企业京东方、群创&#xff0c;以及日企阿尔卑斯电气、日东电工、罗姆等10家企业&#xff0c;同时&#xff0c;新增了舜宇光学、Simmtech等13家企业。 以下…