uniApp入门(一)

2023-11-04

目录

一、项目准备

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()
					}
				})
			}
		}

效果如图:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uniApp入门(一) 的相关文章

随机推荐

  • 记录一下CausalDiscoveryToolbox的R包安装历程

    R的安装和配置文件的修改 使用python包CausalDiscoveryToolbox时 对R包是有依赖的 首先需要安装R R完成安装后 修改CausalDiscoveryToolbox的配置文件 对于anaconda来说 配置文件为Li
  • fedora 改变启动顺序

    vi boot grub menu lst
  • 阿里云对象存储OSS打造私人图床&私人云存储(1年仅9元)

    阿里云对象存储OSS打造私人图床 私人云存储 1年仅9元 阿里云对象存储OSS Object Storage Service 是一款海量 安全 低成本 高可靠的云存储服务 提供99 9999999999 12个9 的数据持久性 99 995
  • 亿赛通电子文档安全管理系统 RCE漏洞

    亿赛通电子文档安全管理系统 RCE漏洞 一 产品简介 二 漏洞概述 三 复现环境 四 漏洞复现 小龙POC检测 五 修复建议 免责声明 请勿利用文章内的相关技术从事非法测试 由于传播 利用此文所提供的信息或者工具而造成的任何直接或者间接的后
  • 什么是技术美术?

    前言 技术美术 英文名是Technical Art 简称TA 说白了就是一群既懂程序又懂美术的人 至于技术美术是属于程序还是属于美术我们在这里不做过多讨论 要不然会打起来的 反正我认为技术美术就是一名特殊的美术 要不然的话为什么不叫美术技术
  • Nginx 性能调优

    原文地址 http nginx com blog tuning nginx Tuning NGINX for Performance Nginx 性能调优 NGINX is well known as a high performance
  • 【Linux】Ubuntu的一些实用指令技巧

    目录 实用的技巧 文件目录操作技巧 远程管理使用技巧 用户管理使用技巧 查询系统信息的实用技巧 链接问题 打包和压缩的使用技巧 实用的技巧 1 tab补全 当我们在终端中敲命令时 有时候按下tab键 没有歧义 系统会自动帮助我们补全命令的剩
  • 微软拼音输入法繁体转简体

    win10自带的微软拼音输入法繁体转简体 在使用Eclipse时 格式化代码的快捷键是 CTRL SHIFT F 今天在使用eclipse时 因为格式化代码的快捷键是 CTRL SHIFT F 按了之后 在拼音打字时发现 出来的字都是繁体
  • 光伏圈告别「看天吃饭」,塞浦路斯大学耗时 2 年,发现机器学习预测污染损失未来可期

    内容一览 光伏系统是一种利用太阳能发电的可再生能源解决方案 具有减少温室气体排放 分散式发电 经济效益等优势 对于推动可持续能源发展和应对环境挑战具有重要作用 然而 许多具有最高太阳辐射的地点也存在地面干燥 多尘的缺点 这可能会影响光伏系统
  • NodeJS excel 导入(js-xlsx)

    js xlsx github地址 https github com SheetJS js xlsx 准备 excel文档 解析方法 const XLSX require xlsx function importExcel filePath
  • c语言的循环语句的结构,C语言的基本结构与循环语句(ppt 23页).ppt

    C语言的基本结构与循环语句 ppt 23页 ppt 由会员分享 可在线阅读 更多相关 C语言的基本结构与循环语句 ppt 23页 ppt 21页珍藏版 请在人人文库网上搜索 1 第四章 C51流程控制语句 第一节 C语言的基本结构 C语言是
  • vue+axios+vite实现跨域请求

    使用vue axios vite实现跨域请求 1 route js import createRouter createWebHistory from vue router const routerHistory createWebHist
  • VUEJS入坑日记.2 -DatePicker设置默认日期

    iview中DatePicker 的value属性和v modal不能同时使用
  • 从输入网址到显示网页的全过程分析

    作为一个软件开发者 你一定会对网络应用如何工作有一个完整的层次化的认知 同样这里也包括这些应用所用到的技术 像浏览器 HTTP HTML 网络服务器 需求处理等等 本文将更深入的研究当你输入一个网址的时候 后台到底发生了一件件什么样的事 1
  • python怎样让条形图x轴的字不要重叠

    在 matplotlib 中绘制条形图时 可以使用 rotation 参数来控制 x 轴标签的旋转角度 例如 如果你希望将 x 轴标签旋转 45 度 可以这样写 import matplotlib pyplot as plt 绘制条形图的代
  • 虚拟机类加载机制

    虚拟机类加载机制 深入理解Java虚拟机 第2版 类加载的时机 类从被加载到虚拟机内存中开始 到卸载出内存为止 它的整个生命周期包括 加载 验证 准备 解析 初始化 使用和卸载7个阶段 其中验证 准备 解析3个部分统称为连接 加载 验证 准
  • PAN解读 —— Efficient and Accurate Arbitrary-Shaped Text Detection with Pixel Aggregation Network

    文章目录 简述 网络结构 Backbone Segmentation Head FPEM FFM Output and Pixel Aggregation PA 损失函数 Aggregation Loss Discrimination Lo
  • CocoaPods问题排查步骤

    CocoaPods问题排查步骤 1 ruby源的问题排查 1 查看ruby的源 gem sources l 2 添加ruby的源 如果不是 https gems ruby china com 的源的话 添加这个源 gem sources a
  • 10分钟手把手教你运用Python实现简单的人脸识别

    今天 我们用Python实现高大上的人脸识别技术 Python里 简单的人脸识别有很多种方法可以实现 依赖于python胶水语言的特性 我们通过调用包可以快速准确的达成这一目的 这里介绍的是准确性比较高的一种 01 首先 梳理一下实现人脸识
  • uniApp入门(一)

    目录 一 项目准备 1 1 创建项目 1 2 创建页面 1 3 运行项目 1 4 pages json文件的页面配置与全局配置 1 5 rpx单位 二 内置组件 2 1 基础内容 2 2 视图容器 2 2 1 scrollView 2 2