uniApp入门(一)

news2024/11/20 23:31:16

目录

一、项目准备

1.1、创建项目

1.2、创建页面

1.3、运行项目

1.4、pages.json文件的页面配置与全局配置

1.5、rpx单位

二、内置组件

2.1、基础内容

2.2、视图容器

2.2.1、scrollView

2.2.2、swiper

2.3、表单组件

2.4、路由跳转

2.5、配置tabBar导航菜单与opentype跳转差异

三、vue语法的使用

3.1、指令应用

3.2、组件应用

3.3、组件传值

3.3.1、props和emit

3.3.2、修饰符native和sync以及update的实现原理

3.3.3、生命周期

3.3.4、页面传参(onLoad与vueroute路由传参差异)

四、界面交互反馈组件

4.1、uni.showToast模态弹窗

4.2、uni.showLoading和uni.hideLoading

4.3、uni.showModal模态弹窗

五、网络请求uni.reques



一、项目准备

1.1、创建项目

打开工具HBuilderX.exe,左上方“文件”---》“新建”---》“项目”,为项目起名:如下图所示

1.2、创建页面

在工程简介 | uni-app官网 可在创建好的文件夹里面看到对应的目录结构,了解项目的基本构成。

在项目的”pages“文件夹,右击“新建”,即可创建与index页面同级的文件。

1.3、运行项目

项目可在多端运行,如果想在浏览器端运行,需要进行配置,如下三步点击对应页面

在自己电脑找到对应浏览器的位置,包括在微信开发者工具的处理一样。只是想要在微信开发者工具上进行预览,需要在”设置“的”安全设置“中开启服务端口号

 

1.4、pages.json文件的页面配置与全局配置

uni-app官网 在官网《全局文件》里面可以看到“style”设置的具体属性

在"pages.json"文件里面进行相应的设置,pages数组中谁放在第一个就先展示谁;

备注:“globalStyle”具体的属性也在pages.json页面配置,只是他的优先级是最低的。

1.5、rpx单位

以375px的移动端视图来看,150px=300rpx,以此类推,使用rpx单位是因为它可以自适应(响应不同尺寸)。所以要想375px宽度全屏,就写750rpx.

二、内置组件

组件使用的入门教程 | uni-app官网

2.1、基础内容

以icon和text标签为例:

<icon type="success" size="26" />
<text>text相当于span标签;</text>
<text selectable user-select>selectable表示文本是否可选;</text>
<text space="emsp">space="emsp"表示显示连续空格</text>

2.2、视图容器

以view标签为例

<view class="divBox">
	view相当于div,这里使用rpx单位自适应
</view>
.divBox {
			width: 750rpx;
			height: 200rpx;
			background-color: pink;
		}

2.2.1、scrollView

可滚动视图区域。用于区域滚动。

<scroll-view class="scroll" scroll-x>
			<view class="group">
				<view class="item">
					给scroll-view
				</view>
				<view class="item">
					添加scroll-x
				</view>
				<view class="item">
					即可横向滚动
				</view>
				<view class="item">
					111
				</view>
			</view>
</scroll-view>
<!--======================== 样式 -->
.scroll {
			border: 1px solid red;
			box-sizing: border-box;
			height: 220rpx;
			.group {
				white-space: nowrap;//不换行
				.item {
					width: 220rpx;
					height: 220rpx;
					background-color: blue;
					display: inline-block;
					margin-right: 10rpx;
				}
			}
}

2.2.2、swiper

滑块视图容器。一般用于左右滑动或上下滑动,比如banner轮播图。

其中的媒体容器image在获取文件路径时,直接/即可获得。

<text>swiper中的图像必须先指定宽高,再使用mode="aspectFill"调正缩放比例</text>
<swiper class="swiper" autoplay interval="1000" circular>
			<swiper-item class="item">
				<image src="/static/images/p0.jpg" mode="aspectFill"></image>
			</swiper-item>
			<swiper-item class="item">
				<image src="/static/images/p1.jpg" mode="aspectFill"></image>
			</swiper-item>
			<swiper-item class="item">
				<image src="/static/images/p2.jpg" mode="aspectFill"></image>
			</swiper-item>
</swiper>
<!--======================== 样式 -->
.swiper {
			height: 400rpx;
			margin-top: 10rpx;
			.item {
				padding: 10rpx;
				box-sizing: border-box;
				image {
					width: 100%;
					height: 400rpx;
				}
			}
}

效果演示:

2.3、表单组件

官网有基础表单组件,只是样式可能比较单一,推荐一个组件库介绍 | uView 2.0 - 全面兼容nvue的uni-app生态框架 - uni-app UI框架

2.4、路由跳转

<navigator url=”xxx”></navigator>跳转除了tabBar以外的路由页面

<navigator url="/pages/list/list" open-type="reLaunch">跳转到list</navigator>

这个relaunch指关闭所有页面,跳转至指定页面(tabBar页面的路由也可以),它与switchTab相比则是它可以携带参数,而switchTab不携带参数。

uni.navigateTo(OBJECT) | uni-app官网 方法跳转语法如下:

<view class="luyou" style="background:red;width:300rpx;height:300rpx" @click="luyouGo">
			方法跳转
</view>
methods: {
			luyouGo() {
				uni.navigateTo({
					url: "/pages/luyou/luyou?wd=uniapp"
				})
			},
		},

2.5、配置tabBar导航菜单与opentype跳转差异

直接写在page.json文件里,相关属性见uni-app官网的“全局文件”---“pages.json 页面路由”

三、vue语法的使用

3.1、指令应用

---------v-if:demo消失------
		<view v-if="day==1">周一</view>
		<view v-else-if="day==2">周二</view>
		<view v-else-if="day==3">周三</view>
		<view v-else>周四</view>
--------v-show:只是元素隐藏-----
		<view v-show="state">周一</view>
		<view v-show="!state">周二</view>
--------v-html和{{}}-----------
		<view>{{code}}</view>
		<view v-html="code"></view>
--------v-for和v-bind:属性--------
	------循环简单数组--
		<view v-for="(item,index) in array" :key="index" class="out">
			<view>{{(index+1)+"-"+item}}</view>
		</view>
	------循环对象--写法是固定的v-for="(value,name,index) in obj
		<view v-for="(value,name,index) in obj">
			{{index+"---"+name+":"+value}}
			<!-- {{index}}----{{name}}:{{age}} ---也可以-->
		</view>
    ------循环数组对象--
		<view v-for="(item,index) in goods" class="goods">
			<view>名称:{{item.tit}}----价格:{{item.price}}</view>
		</view>
------style样式绑定+随机色案例-----
		<view class="color" :style="{background:bgcolor}" @click="ColorChange"></view>
------class绑定样式改变=---------
		<!-- <view class="colorChange" :class="{myactive:stateColor}" @click="StateChange"></view> -->
		<view class="colorChange" :class="stateColor?'myactive':''" @click="StateChange"></view>
-------导航栏点击变色案例----------
		<view class="nav">
			<view class="item" :class="navIndex==index?'active':''" v-for="(item,index) in navArr" :key="item.id"
				@click="navChange(index)">{{item.tit}}</view>
		</view>

3.2、组件应用

(1)easycom自动导入自定义组件

在总文件夹上右击“新建目录”---》“components(必须带s)”,生成新的组件文件夹,然后右击“新建组件”,如下图所示!在页面引入时,直接<mylist></mylist>即可!

3.3、组件传值

3.3.1、props和emit

通过props为子组件传不同的值,props绑定动态值以及数据类型默认值用法同vue

//父组件引入子组件
-----------props改变子组件的值-----
<publicNews :BigTitle="list" :subTitle="list page"></publicNews>
//子组件接收
props:{
			BigTitle:{
				type:String,
				default:"默认标题"
			},
			subTitle:{
				type:String,
				default:"默认副标题"
			}
}

emit子向父组件传值用法同vue

3.3.2、修饰符native和sync以及update的实现原理

有种情况:父组件传递给子组件的值,一般不建议直接将接收的值进行修改,而是由子组件再向父组件传递回去,由父组件自己进行更改,所以就使用sync进行便捷操作。

待更新....

3.3.3、生命周期

生命周期:onLaunch、onShow、onHide;Vue的生命周期也可以使用!

3.3.4、页面传参(onLoad与vueroute路由传参差异)

页面传参:标签/方法点击跳转路由并传参,接收时两种方式(h5和微信小程序)

onLoad:微信小程序传参;vueroute:路由传参

四、界面交互反馈组件

官网文档---》“API"---》"界面"---》“交互反馈”,其他参数看文档

4.1、uni.showToast模态弹窗

自己去写出现的图标和内容

4.2、uni.showLoading和uni.hideLoading

onLoad() {
			uni.showLoading({
				title:"数据加载中....",
				mask:true
			})
			setTimeout(()=>{
				uni.hideLoading()
			},2000)
		},

uni.showToastuni.showLoading区别:

都通过事件点击触发

前者自己开自己关闭;后者需要借助uni.hideLoading进行关闭

4.3、uni.showModal模态弹窗

带有“确定”和"取消"按钮的弹出框,触发相应的回调函数

五、网络请求uni.request

官网文档---》“API"---》"网络"---》“发起请求”,其他参数看文档

案例:点击图片,随机切换

<image :src="picUrl" mode="aspectFit" @click="getPivUrl"></image>
onLoad() {
			this.getPivUrl()
		},
methods: {
			getPivUrl() {
				uni.showLoading({
					title:"数据加载中...."
				})
				uni.request({
					url: "https://dog.ceo/api/breeds/image/random",
					data:{
                     //写参数,或者用?直接拼在url后面
					},
                    method:"get",//请求方式
					success: res => {
						this.picUrl = res.data.message
					},
					fail:err=>{
					},
					complete:()=>{
						uni.hideLoading()
					}
				})
			}
		}

效果如图:

 

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

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

相关文章

基于微信小程序云开发的通用会议室预约小程序源码,通用会议室预约微信小程序源码

功能介绍 会议室是一个单位或部门的共用资源,但在使用的时候往往会遇到时间冲突、预约困难、不方便协调等问题。目前大部分公司是统一在公司群聊中预约&#xff0c;每次预约时&#xff0c;都需要翻一下聊天记录&#xff0c;了解是否有人预定以及预定时间等。如果冲突则需要找到…

北大硕士LeetCode算法专题课--动态规划和贪心算法

面试专题课&#xff1a; 北大硕士LeetCode算法专题课--递归和回溯_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法专题课-栈、队列相关问题_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法专题课--链表相关问题_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法…

<Python的函数(2)>——《Python》

目录 1.函数执行过程 2.链式调用 3.嵌套调用 4.函数递归 4.1 递归的概念 4.2 递归的优点 4.3 递归的缺点 5. 参数默认值 6. 关键字参数 7. 小结 1.函数执行过程 调用函数才会执行函数体代码. 不调用则不会执行. 函数体执行结束(或者遇到 return 语句), 则回到函数调…

清晰解析浮点型在内存中的存储 浮点型如何取出 IEEE754 SME 精度丢失 C语言进阶

&#x1f40e;作者的话 本文涵盖了浮点型在内存中的如何存储、如何取出、为何有精度丢失等知识点~ 跳跃式目录浮点型概括浮点数的存储bit位储存模型精度丢失浮点型的取出浮点数的取出实机演示浮点型概括 常见的浮点型数据有三种&#xff1a; 以科学计数法表示的&#xff1a;1…

php内核分析-fpm和df的问题思考

介绍 php中的disable_function是EG(ini_directives)来获得的&#xff0c;而phpinfo根据 EG(ini_directives) 中获取信息并打印。 然后通过zend_disable_function()函数去禁止&#xff0c;简单的说就是通过 func->handler ZEND_FN(display_disabled_function); 修改了handl…

ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-2-02:芯科的软件解决方案Gecko SDK

【源码、文档、软件、硬件、技术交流、技术支持&#xff0c;入口见文末】 【所有相关IDE、SDK和例程源码均可从群文件免费获取&#xff0c;免安装&#xff0c;解压即用】 持续更新中&#xff0c;欢迎关注&#xff01; 虽然Silicon Labs是一家半导体公司&#xff0c;但是他们为…

手写spring13(xml自动扫描bean注册)

文章目录目标包扫描注解配置的使用占位符属性的填充设计类结构一、实现1、处理占位符配置——PropertyPlaceholderConfigurer2、定义Scope、Component拦截注解3、处理对象扫描装配——ClassPathBeanDefinitionScanner4、解析xml中调用扫描二、测试1、准备2、属性配置文件3、pri…

网络原理笔记一

文章目录1、局域网&#xff08;LAN&#xff09;2、广域网&#xff08;WAN&#xff09;3、网络通信基础1、IP地址2、端口号3、认识协议4、协议分层1、网络模型2、网络数据传输的基本流程1、局域网&#xff08;LAN&#xff09; 局域网全称&#xff1a;Local Area Network&#x…

【数据结构】顺序表深度剖析

目录 &#x1f6eb;前言&#x1f6eb;&#xff1a; &#x1f680;一、线性表概述&#x1f680;&#xff1a; &#x1f6f0;️二、顺序表&#x1f6f0;️&#xff1a; 1.概念及结构&#xff1a; 2.接口实现&#xff1a; ①.工程文件&#xff1a; ②.接口实现&#xff1a; ③.…

2023 铁人三项 CTF --- Misc wp

文章目录Misc一生壹世Misc手的必备技能套娃-1套娃-2套娃-3套娃-4套娃-5Misc 一生壹世 根据提示压缩包密码是谐音&#xff0c;所以猜测密码是1314&#xff0c;直接解压得到四个txt文件 然后用010分按照一生一世打开4个文件&#xff0c;发现每个文件的第一个字节拼起来是8950…

LeetCode题目笔记——1807. 替换字符串中的括号内容

文章目录题目描述题目难度——中等方法一&#xff1a;使用字典代码/Python代码/C总结题目描述 给你一个字符串 s &#xff0c;它包含一些括号对&#xff0c;每个括号中包含一个 非空 的键。 比方说&#xff0c;字符串 “(name)is(age)yearsold” 中&#xff0c;有 两个 括号对…

什么是聚宽量化?

聚宽量化交易其实是通过编程将策略写成计算机可识别的代码&#xff0c;具体说可以是以python这门编程语言将与券商那边的平台搭建&#xff0c;例如用聚宽的向导式策略生成器就能很快的将股票交易接口翻译出来的策略&#xff0c;以便将平时需要查询的融资账户的持仓情况来编写代…

区块链将传统的产业运行逻辑,改造成以个体为主导的运行逻辑

新的产业之所以被成为新产业&#xff0c;其中一个很重要的原因在于&#xff0c;它的底层运行逻辑&#xff0c;正在发生一场深刻而又彻底的改变。然而&#xff0c;如果深入分析这种能够给产业的内在运行逻辑产生重塑和改变的&#xff0c;依然在于区块链本身。从某种意义上来讲&a…

YOLOv8 深度详解!一文看懂,快速上手

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本&#xff0c;目前支持图像分类、物体检测和实例分割任务&#xff0c;在还没有开源时就收到了用户的广泛关注。 考虑到 YOLOv8 的优异性能&#xff0c;MMYOLO 也在第一时间组织了复现&#xf…

一篇文章搞定字符串的旋转问题(数组旋转问题)!

目录 前言 一.如何实现字符串的旋转&#xff1f; 1.用冒泡的思想实现 2.分别逆序左右再整体逆序来实现 二.如何快速判断一个字符串是否为另外一个字符串旋转之后的字符串&#xff1f; 1.相关库函数的简略学习 2.利用库函数快速实现判断 总结 博客主页&#xff1a;张栩睿…

数据结构基础知识(一)

1 数据结构的基本概念和算法 考点 数据结构基本概念算法 1.1 数据结构的基本概念 数据 数据是指所有能输入到计算机中的描述客观事物的符号&#xff0c;包括文本、声音、 图像、符号等。 数据元素 数据元素十数据的基本单位&#xff0c;也称节点或记录。 数据项 数据项…

【数仓】FLink+CK

1.项目分层 ODS&#xff1a;原始数据&#xff0c;包含日志和业务数据DWD&#xff1a;根据数据对象为单位进行分流。比如订单、页面访问等。DIM&#xff1a;维度数据DWM&#xff1a;对于部分数据对象进行进一步加工&#xff0c;比如独立访问、跳出行为&#xff0c;也可以和维度…

谷粒商城项目笔记之高级篇(三)

目录1.9.22 提交订单的问题1)、订单号显示、应付金额回显2)、提交订单消息回显3&#xff09;、为了确保锁库存失败后&#xff0c;订单和订单项也能回滚&#xff0c;需要抛出异常1.9.23 创建库存上锁、解锁 业务交换机&队列1&#xff09;、流程梳理2&#xff09;、解锁库存实…

Vsftpd服务的部署及优化详解(图文)

目录 前言 实验环境 一、vsftpd的安装及启用 1、具体步骤 2、开启匿名用户访问功能并测试 二、vsftpd基本信息 三、匿名用户访问控制 四、本地用户访问控制 五、虚拟用户访问 1、建立虚拟用户访问 2、虚拟用户家目录的独立设定 3、用户配置独立 前言 vsftpd是“…

TapTap 算法平台的 Serverless 探索之路

分享人&#xff1a;陈欣昊&#xff0c;TapTap/IEM/AI平台负责人 摘要&#xff1a;本文主要介绍心动网络算法平台在Serverless上的实践。 《TapTap算法平台的 Serverless 探索之路》 Serverless 在构建应用上为我们节省了大量的运维与开发人力&#xff0c;在基本没投入基建人力…