当前位置: 首页 > 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…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...