uni-app知识点整理(3)- 组件的基本使用、uni-app样式

目录

 

一、组件的基本使用

1.1 text文本组件

1.1.1 案例练习

2.1 view组件

2.1.1 案例练习

3.1 button按钮组件

3.1.1 简单案例练习

4.1 image组件

二、uni-app样式

2.1 简单案例练习


一、组件的基本使用

uni-app提供了丰富的基础组件给开发者,开发者可以组合各种组件拼接自己的应用uni-app应用中的组件,就像HTML中div、p、span等标签的作用一样,用于搭建页面的基础结构

1.1 text文本组件

uni-app官方文档 - text

text组件属性说明
属性名类型默认值说明平台差异说明
selectableBooleanfalse文本是否可选App、H5、快手小程序
user-selectBooleanfalse文本是否可选微信小程序
spaceString显示连续空格App、H5、微信小程序
decodeBooleanfalse是否解码App、H5、微信小程序
  • 注意:decode目前App、H5、微信小程序默认是可以解码的
  • text组件相当于行内标签,在同一行显示
  • 除了文本节点以外的其他节点都无法长按选中
space值说明
说明
ensp中文字符空格一半大小
emsp中文字符空格大小
nbsp根据字体设置的空格大小

Tips

  • <text>组件内只支持嵌套<text>,不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。
  • 在app-nvue下,只有<text>才能包裹文本内容。无法在<view>组件包裹文本。
  • decode 可以解析的有 &nbsp; &lt; &gt; &amp; &apos; &ensp; &emsp;
  • 各个操作系统的空格标准并不一致。
  • 除了文本节点以外的其他节点都无法长按选中。
  • 支持 \n 方式换行。
  • 如果使用<span>组件编译时会被转换为<text>

1.1.1 案例练习

  • 在detail.vue页面中使用text组件

detail.vue

<template>
	<view>
		<view>
			<text>Detail详情页</text>
		</view>
		<view>
			<text selectable>Detail    详情页</text>
		</view>
		<view>
			<text selectable space="emsp">Detail    详情页</text>
		</view>
		<view>
			<text selectable space="ensp">Detail    详情页</text>
		</view>
		<view>
			<text selectable space="nbsp" style="font-size: 20px;">Detail    详情页</text>
		</view>
		<view>
			<text selectable decode>&lt; &gt; &amp; &apos;</text>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			
		}
	}
</script>

由图示可看出:

  • 第一行text组件未设置selectable属性因而文本为不可选的,而其他行文本为可选的
  • 3,4,5行text组件各设置了不同的space值,因而呈现出不同的空格效果
  • 最后一行text组件设置了decode

2.1 view组件

uni-app官方文档 - view

view 视图容器,类似于 HTML 中的 div

view属性说明
属性名类型默认值说明
hover-classStringnone指定按下去的样式类。当 hover-class="none" 时,没有点击态效果
hover-stop-propagationBooleanfalse指定是否阻止本节点的祖先节点出现点击态,App、H5、支付宝小程序、百度小程序不支持(支付宝小程序、百度小程序文档中都有此属性,实测未支持)
hover-start-timeNumber50按住后多久出现点击态,单位毫秒
hover-stay-timeNumber400手指松开后点击态保留时间,单位毫秒

2.1.1 案例练习

  • 在detail.vue页面中使用view组件各个属性

detail.vue

<template>
	<view>
		<view class="box1" hover-class="box1-active">
			<view class="box2" hover-class="box2-active" :hover-start-time="1000" :hover-stay-time="1000" hover-stop-propagation>
				点击动态效果
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			
		}
	}
</script>

<style>
.box1{
	width: 200px;
	height: 200px;
	background-color: red;
}
.box2{
	width: 100px;
	height: 100px;
	background-color: skyblue;
}
.box1-active{
	background-color: orange;
}
.box2-active{
	background-color: greenyellow;
}
</style>

3.1 button按钮组件

uni-app官方文档 - button

3.1.1 简单案例练习

  • 在detail.vue页面中使用button组件各个属性

detail.vue

<template>
	<view>
		<view>
			<button>默认按钮</button>
		</view>
		<view>
			<button size="mini">mini按钮</button>
		</view>
		<view>
			<button type="primary">primary按钮</button>
		</view>
		<view>
			<button disabled>禁用按钮</button>
		</view>
		<view>
			<button loading>带loading按钮</button>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			
		}
	}
</script>

4.1 image组件

uni-app官方文档 - image

Tips:

  • <image> 组件默认宽度 300px、高度 225px;app-nvue平台,暂时默认为屏幕宽度
  •  src 仅支持相对路径、绝对路径,支持 base64 码
  • 页面结构复杂,css样式太多的情况,使用 image 可能导致样式生效较慢,出现 “闪一下” 的情况,此时设置 image{will-change: transform} ,可优化此问题。
  • 自定义组件里面使用 <image>时,若 src 使用相对路径可能出现路径查找失败的情况,故建议使用绝对路径。
  • webp格式的图片在Android上是内置支持的。iOS上不同平台不一样,具体如下:app-vue下,iOS不支持;app-nvue下,iOS支持;微信小程序2.9.0起,iOS支持。
  • svg 格式的图片在不同的平台支持情况不同。具体为:app-nvue 不支持 svg 格式的图片,小程序上只支持网络地址。

二、uni-app样式

  • rpx 即响应式px,一种根据屏幕宽度自适应的动态单位,以750宽屏幕为基准,750rpx恰好为屏幕宽度。屏幕变宽,rpx实际显示效果会定比放大
  • 使用 @import 语句可以导入外联样式表,@import 后跟需要导入的外联样式的相对路径,   用 表示语句结束
  • 支持基本常用的选择器class、id、element等
  • 在 uni-app 中 不能使用 * 选择器
  • page 相当于 body 节点
  • 定义在 App.vue 中的样式为全局样式,作用于每一个页面。在pages目录下的vue文件中定义的样式为局部样式,只作用于对应的页面,并会覆盖App.vue中相同的选择器
  • uni-app 支持使用字体图标,使用方式与普通 web 项目相同,需要注意以下几点:
    • 字体文件小于40kb,uni-app会自动将其转化为base64格式
    • 字体文件大于等于40kb,需开发者自己转换,否则使用将不生效
    • 字体文件的引用路径推荐使用以 ~@ 开头的绝对路径 

2.1 简单案例练习

  • 在detail.vue页面中引入并使用字体图标

字体图标下载:阿里巴巴矢量图标库

  • 选择自己的所需的图标,然后添加进项目中,之后下载项目即可
  • 将下载完项目文件解压放入uni-app项目中static目录中

修改字体图标文件中 iconfont.css 中的引用路径

@font-face {
  font-family: "iconfont"; /* Project id 1680873 */
  // 引用路径推荐使用以 ~@ 开头的绝对路径
  src: url('~@/static/fonts/iconfont.woff2?t=1651420901071') format('woff2'),
       url('~@/static/fonts/iconfont.woff?t=1651420901071') format('woff'),
       url('~@/static/fonts/iconfont.ttf?t=1651420901071') format('truetype');
}

.....

在detail.vue页面中引入并使用字体图标

<template>
	<view>
		<view class="iconfont icon-daishouhuo"></view>
		<view class="iconfont icon-daituikuan"></view>
		<view class="iconfont icon-dingdan"></view>
		<view class="iconfont icon-fenlei"></view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			
		}
	}
</script>

<style>
@import url("../../static/fonts/iconfont.css");
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JHY97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值