当前位置: 首页 > news >正文

uni-app组件概述

1、组件

1.1、组件的含义

  • 组件是视图层的基本组成单元。

  • 组件是一个单独且可复用的功能模块的封装。

组件,包括:以组件名称为标记的开始标签和结束标签、组件内容、组件属性、组件属性值。

  • <component-name>是开始标签,</component-name>是结束标签

  • 开始标签和结束标签之间,称为组件内容。如下面的content;

  • 开始标签上可以写属性,属性可以有多个,多个属性之间用空格分割。如下面示例的property1property2

  • 每个属性通过=赋值。如下面的示例中,属性property1的值被设为字符串value

所有组件与属性名都是小写,单词之间以连字符-连接。

<component-name property1="value" property2="value">content
</component-name>

如下的例子:

<template><view><button size="mini">按钮</button></view>
</template>

按照Vue单组件的要求,每个vue文件的根节点必须为 <template>,且这个 <template> 下只能且必须有一个根 <view> 组件。

组件属性有多种类型:BooleanNumberStringArrayObjectAnyEventHandler(事件处理,譬如:点击事件、焦点事件等)

<template><view><--! :disabled的值设置为布尔值,hover-start-time的值设置为Number --><button size="mini" :disabled="false" hover-start-time=20 >按钮</button></view>
</template>

公共属性

每个组件都拥有这些属性,仅限于uniapp

属性名类型描述解释
idString组件的唯一标识一般用于获取组件的上下文对象,需要保持整个页面的唯一
refStringVue组件中的唯一标识用来给子组件注册引用信息
classString组件的类名通常用于设置样式
styleString内联样式动态设置内联样式
hiddenbool组件是否隐藏默认为显示,设为false为隐藏
data-*Any自定义属性组件上触发事件时,会发送给事件处理函数
@*EventHandler组件的事件

除了上述公共属性,还有一类特殊属性以v-开头,称之为vue指令,如v-if、v-else、v-for、v-model。

在组件中使用JavaScript变量,和Vue中定义的data数据相似。

<template><view><button size="mini" :disabled="buttondisble" hover-start-time=20 >{{buttonText}}</button></view>
</template>
<script>export default {data() {return {"buttonText":"点我送神龙刀","buttondisble":false}}}
</script>
​

组件的事件

每个组件都有事件,事件就是在进行某些操作时触发的某个方法。

比如button组件的点击事件,在点击按钮时,会触发。

事件作为组件的属性,用@开头。

<template><view><button size="mini" @click="clickbtn('按钮被点了一下')">按钮</button></view>
</template>
<script>export default {methods: {clickbtn(msg) {console.log("点击按钮得到的消息是:" + msg)}}}
</script>

1.2、基础组件

基础组件指的是uniapp内置的组件,无须定义,可以直接加载。

uniapp的基础组件和HTML标签类似,但是却不相同,与微信小程序相同,可以更好的满足移动端的体验。

虽然不推荐使用HTML标签,但实际上如果开发者写了div等标签,在编译到非H5平台时也会被编译器转换为view标签,类似的还有spantextanavigator等,包括css里的元素选择器也会转。但为了管理方便、策略统一,新写代码时仍然建议使用view等组件。

可以通过组合这些基础组件进行快速开发。在需要复用的情况下可封装成扩展组件

基础组件规范,与小程序规范相近。但是要注意组件上的事件绑定,需要以 vue 的事件绑定语法来绑定,如 bindchange="eventName" 事件,需要写成 @change="eventName"

<picker mode="date" :value="date" start="2015-09-01" end="2020-09-01" @change="bindDateChange"><view class="picker">当前选择: {{date}}</view>
</picker>

1.3、基础组件分类

1.3.1、视图容器

组件名说明
view视图容器,类似于HTML中的div
scroll-view可滚动视图容器
swiper滑块视图容器,比如用于轮播banner
match-media屏幕动态适配组件,比如窄屏上不显示某些内容
movable-area可拖动区域
movable-view可移动的视图容器,在页面中可以拖拽滑动或双指缩放。movable-view必须在movable-area组件中
cover-view可覆盖在原生组件的上的文本组件
cover-image可覆盖在原生组件的上的图片组件

1.3.2、基础内容容器

组件名说明
icon图标
text文字
rich-text富文本显示组件
progress进度条

1.3.3、表单组件

标签名说明
button按钮
checkbox多选框
editor富文本输入框
form表单
input文本输入框
label标签
picker弹出式列表选择器
picker-view窗体内嵌式列表选择器
radio单选框
slider滑动选择器
switch开关
textarea多行文本输入框

1.3.4、路由与页面跳转

组件名说明
navigator页面链接。类似于HTML中的a标签

1.3.5、媒体组件

组件名说明
audio声音
camera相机
image图片
video视频
live-player直播播放
live-pusher实时音视频录制,也称直播推流

1.3.6、地图

组件名说明
map地图

1.3.7、画布

组件名说明
canvas画布

1.3.8、webview

组件名说明
web-viewweb浏览器组件

1.3.9、广告

组件名说明
ad广告组件
ad-draw沉浸视频流广告组件

1.3.10、页面属性配置

组件名说明
custom-tab-bar底部tabbar自定义组件
navigation-bar页面顶部导航
page-meta页面属性配置节点

1.3.11、uniCloud

组件名说明
unicloud-db组件uniCloud数据库访问和操作组件

1.4、扩展组件

虽然所有的业务需求都可以通过基础组件来实现,但是有时候使用基础组件来实现某个功能是比较低效的。所以会有开发者封装各种功能的组件,用于提高开发效率。这类组件被称为扩展组件。一般在插件市场我们可以找到很多开发者开发的插件,用于实现各类功能。

比如:我们需要一个五角星点击评分的组件,在DCloud的插件市场里可以获取到:uni-rate 评分 - DCloud 插件市场

把这个uni-rate组件导入到你的uni-app项目下,在需要的vue页面里引用它,就可以在指定的地方显示出这个五角星组件。

<!-- 在index.vue页面引用 uni-rate 组件-->
<template><view><uni-rate></uni-rate><!-- 这里会显示一个五角星,并且点击后会自动亮星 --></view>
</template>
    

封装组件的好处多多,

  1. 可以进行组件复用,就像我们定义了一个共用方法一样。

  2. 代码更方便管理,扩展性更好

  3. 提高开发效率,避免重复造轮子。方便测试。

相关文章:

uni-app组件概述

1、组件 1.1、组件的含义 组件是视图层的基本组成单元。 组件是一个单独且可复用的功能模块的封装。 组件&#xff0c;包括&#xff1a;以组件名称为标记的开始标签和结束标签、组件内容、组件属性、组件属性值。 <component-name>是开始标签&#xff0c;</compon…...

什么是防火墙?它有什么作用?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、什么是防火墙 二、防火墙的分类 1、软件防火墙 2、硬件防火墙 三、防火墙的作用 1、防止病毒 2、防止访问不安全内容 3、阻…...

基础工程(cubeide串口调试,printf实现,延时函数)

0.基础工程&#xff08;cubeide串口调试&#xff0c;printf实现&#xff0c;延时函数&#xff09; 文章目录 0.基础工程&#xff08;cubeide串口调试&#xff0c;printf实现&#xff0c;延时函数&#xff09;外部时钟源CLOCK(RCC)系统时钟SYS与DEBUG设置UART串口设置cubeide设置…...

大厂设计师都在用的9个灵感工具

每一件伟大的设计作品都离不开设计师灵感的爆发。设计师有很多灵感来源&#xff0c;比如精美的摄影图片、酷炫的网站设计、APP的特色功能、友好的用户体验动画&#xff0c;或者一篇文章。 设计师每天都需要收集灵感&#xff0c;把灵感收集当成日常生活。在这篇文章中&#xff…...

安全实现SpringBoot配置文件自动加解密

需求背景 应用程序开发的时候&#xff0c;往往会存在一些敏感的配置属性 数据库账号、密码第三方服务账号密码内置加密密码其他的敏感配置 对于安全性要求比较高的公司&#xff0c;往往不允许敏感配置以明文的方式出现。 通常做法是对这些敏感配置进行加密&#xff0c;然后在…...

数据结构--队列2--双端队列--java双端队列

介绍 双端队列&#xff0c;和前面学的队列和栈的区别在于双端队列2端都可以进行增删&#xff0c;其他2个都是只能一端可以增/删。 实现 链表 因为2端都需要可以操作所以我们使用双向链表 我们也需要一共头节点 所以节点设置 static class Node<E>{E value;Node<E…...

网络安全:信息收集专总结【社会工程学】

前言 俗话说“渗透的本质也就是信息收集”&#xff0c;信息收集的深度&#xff0c;直接关系到渗透测试的成败&#xff0c;打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式&#xff0c;缩短渗透测试的时间。 一、思维导图 二、GoogleHacking 1、介绍 利用…...

Linux 命令总结

基本操作 Linux关机,重启 # 关机 shutdown -h now# 重启 shutdown -r now 查看系统,CPU信息 # 查看系统内核信息 uname -a# 查看系统内核版本 cat /proc/version# 查看当前用户环境变量 envcat /proc/cpuinfo# 查看有几个逻辑cpu, 包括cpu型号 cat /proc/cpuinfo | grep na…...

使用腾讯手游助手作为开发测试模拟器的方案---以及部分问题的解决方案

此文主要介绍使用第三方模拟器(这里使用腾讯手游助手)作为开发工具&#xff0c;此模拟器分为两个引擎&#xff0c;一个与其他模拟器一样基于virtualbox的标准引擎&#xff0c;不过优化不太好&#xff0c;一个是他们主推的aow引擎&#xff0c;此引擎。关于aow没有太多的技术资料…...

牛客网论坛最具争议的Linux内核成神笔记,GitHub已下载量已过百万

原文地址&#xff1a;牛客网论坛最具争议的Linux内核成神笔记&#xff0c;GitHub已下载量已过百万 1、前言 Linux内核是一个操作系统&#xff08;OS&#xff09;内核&#xff0c;本质上定义为类Unix。它用于不同的操作系统&#xff0c;主要是以不同的Linux发行版的形式。Linu…...

docker如何容器迁移(实战)

手把手教你如何做容器迁移 第一步准备数据 假设要迁移一个 mysql 服务&#xff08;docker部署&#xff09;&#xff0c;由于数据库过大&#xff08;超过50 GB&#xff09;&#xff0c;用mysqldump备份和还原则太过耗时&#xff0c;下面尝试拷贝目录的方式来迁移&#xff0c;详…...

Android kotlin序列化之Parcelable详解与使用(二)

一、介绍 注解序列化篇&#xff1a;Android kotlin序列化之Parcelize详解与使用_蜗牛、Z的博客-CSDN博客 通过上一篇注解序列化&#xff0c;我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题&#xff0c;注解虽好&#xff0c;但是存在一些问题。 一般在大型商业…...

C++ 类设计的实践与理解

前言 C代码提供了足够的灵活性&#xff0c;因此对于大部分工程师来说都很难把握。本文介绍了写好C代码需要遵循的最佳实践方法&#xff0c;并在最后提供了一个工具可以帮助我们分析C代码的健壮度。 1. 尽可能尝试使用新的C标准 到2023年&#xff0c;C已经走过了40多个年头。新…...

循环链表的创建

循环链表的介绍及创建&#xff08;C语言代码实现&#xff09; 点击打开在线编译器&#xff0c;边学边练 循环链表概念 对于单链表以及双向链表&#xff0c;其就像一个小巷&#xff0c;无论怎么样最终都能从一端走到另一端&#xff0c;然而循环链表则像一个有传送门的小巷&…...

如何让GPT的回答令人眼前一亮,不再刻板回复!

我们平常在使用GPT的时候&#xff0c;是否觉得它的回复太过于死板、官方化&#xff0c;特别是用于创作、写论文分析的时候&#xff0c;内容往往让读者提不起兴趣、没有吸引人的地方&#xff0c;甚至有些内容百度都可以搜到。 举个例子&#xff0c;如下图: 问GPT&#xff0c;AI…...

JMeter测试笔记(四):逻辑控制器

引言&#xff1a; 进行性能测试时&#xff0c;我们需要根据不同的情况来设置不同的执行流程&#xff0c;而逻辑控制器可以帮助我们实现这个目的。 在本文中&#xff0c;我们将深入了解JMeter中的逻辑控制器&#xff0c;包括简单控制器、循环控制器等&#xff0c;并学习如何正…...

【计算机组成原理·笔记】I/O接口

I/O接口 概述I/O接口的功能和组成 I/O接口的组成I/O接口的功能 I/O接口类型 按数据传送方式按功能灵活性按通用性按数据传输的控制方式 概述 I/O接口通常是指主机与I/O设备之间设置的硬件电路以及相应的软件控制&#xff0c;主机通过I/O接口和I/O设备相连接。 I/O接口的功…...

MIT6.024学习笔记(二)——图论(1)

学习不是为了竞争和战胜他人&#xff0c;而是为了更好地了解自己和世界。 - 达赖喇嘛 文章目录 图的相关概念涂色问题基础涂色方法&#xff08;贪婪算法&#xff09;证明 二分图匹配问题应用&#xff1a;稳定婚烟问题算法性质及其证明 图的相关概念 图的定义&#xff1a;一组&…...

饼状图使用属性时,使用驼峰命名法

饼状图是使用D3.js等JavaScript库来绘制的&#xff0c;而JavaScript中的属性名通常采用驼峰式命名法&#xff0c;即第一个单词的首字母小写&#xff0c;后面单词的首字母大写&#xff0c;例如fontSize、fontWeight等。而CSS中的属性名采用连字符命名法&#xff0c;即单词之间用…...

使用Spring Boot、Spring Security和Thymeleaf的整合示例

使用Spring Boot、Spring Security和Thymeleaf的整合示例 大纲&#xff1a; 创建Spring Boot项目 集成Thymeleaf作为模板引擎 配置Spring Security实现身份验证和授权 创建登录页面和主页 创建管理员页面和普通用户页面 实现用户角色和权限管理 详细步骤&#xff1a; 创建Sprin…...

百考通AI文献综述:让研究起点更清晰

在学术研究的起步阶段&#xff0c;文献综述始终是奠定研究基础、厘清研究脉络的核心环节。它不仅需要广泛检索国内外文献&#xff0c;更要系统梳理研究进展、提炼核心观点、指出研究空白&#xff0c;对文献积累不足、时间精力有限的学子而言&#xff0c;常常陷入“文献难找、梳…...

如何构建高效CTR预测系统:从基础原理到实战应用的完整指南

如何构建高效CTR预测系统&#xff1a;从基础原理到实战应用的完整指南 【免费下载链接】d2l-en d2l-ai/d2l-en: 是一个基于 Python 的深度学习教程&#xff0c;它使用了 SQLite 数据库存储数据。适合用于学习深度学习&#xff0c;特别是对于需要使用 Python 和 SQLite 数据库的…...

从奈奎斯特到升余弦:无码间串扰的工程实现之路

1. 从理论到现实&#xff1a;为什么理想低通只是“纸上谈兵”&#xff1f; 聊到数字通信&#xff0c;尤其是基带传输&#xff0c;有一个理论上的“圣杯”叫做“无码间串扰”。简单来说&#xff0c;就是你发送一串“1010”的数字信号&#xff0c;希望接收端在每个码元的精确时刻…...

从“发短信”到“打电话”:IM与RTC的技术路径与应用分野

1. 从“发短信”到“打电话”&#xff1a;两种通信模式的直观感受 我们每天都在用手机&#xff0c;但可能没仔细想过&#xff0c;微信里给朋友发条文字消息&#xff0c;和直接点开视频通话&#xff0c;背后其实是两套完全不同的技术体系在支撑。这就像“发短信”和“打电话”的…...

MVI46-AFC串行通讯模块

MVI46-AFC串行通讯模块是一种用于工业自动化系统的数据处理与通信模块&#xff0c;通常安装在SLC系列PLC平台中。该模块主要用于流量计算与串行数据通信&#xff0c;可对来自现场仪表的流量、压力、温度等信号进行计算和处理&#xff0c;并通过串行接口实现与其他控制设备或监控…...

Deepin系统远程办公实战:用xrdp实现Windows无缝连接(含密码安全配置技巧)

Deepin系统远程办公实战&#xff1a;用xrdp实现Windows无缝连接&#xff08;含密码安全配置技巧&#xff09; 在混合办公与分布式团队日益普及的今天&#xff0c;拥有一套稳定、安全且高效的远程桌面解决方案&#xff0c;已成为许多职场人士和技术爱好者的刚需。如果你恰好是De…...

终极指南:Firefox for Android 数据同步功能详解

终极指南&#xff1a;Firefox for Android 数据同步功能详解 【免费下载链接】fenix ⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android 项目地址: https:/…...

Ecto多数据库配置终极指南:如何在单个应用中管理多个数据源

Ecto多数据库配置终极指南&#xff1a;如何在单个应用中管理多个数据源 【免费下载链接】ecto A toolkit for data mapping and language integrated query. 项目地址: https://gitcode.com/gh_mirrors/ec/ecto Ecto作为Elixir生态中强大的数据映射和查询工具&#xff0…...

如何快速上手json-patch?5分钟完成你的第一个JSON补丁应用

如何快速上手json-patch&#xff1f;5分钟完成你的第一个JSON补丁应用 【免费下载链接】json-patch A Go library to apply RFC6902 patches and create and apply RFC7386 patches 项目地址: https://gitcode.com/gh_mirrors/jso/json-patch JSON补丁&#xff08;JSON …...

RMBG-2.0效果展示:多人合影精细分割+重叠肢体分离能力实测

RMBG-2.0效果展示&#xff1a;多人合影精细分割重叠肢体分离能力实测 1. 开篇&#xff1a;新一代背景移除技术的突破 今天我要给大家展示一个让人惊艳的背景移除工具——RMBG-2.0。这不是普通的抠图软件&#xff0c;而是一个基于先进AI技术的专业级背景移除模型。 想象一下这…...