uni-app组件概述

news/2024/10/24 10:17:29/

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. 提高开发效率,避免重复造轮子。方便测试。


http://www.ppmy.cn/news/79083.html

相关文章

Android进阶 View事件体系(一):概要介绍和实现View的滑动

Android进阶 View事件体系&#xff08;一&#xff09;&#xff1a;概要介绍和实现View的滑动 内容概要 本篇文章为总结View事件体系的第一篇文章&#xff0c;将介绍的内容主要有&#xff1a; 什么是View和ViewGroupAndroid中View的坐标轴手势检测和速度检测如何实现View的滑动…

13_Uboot移植

目录 查找NXP官方的开发板默认配置文件 编译NXP官方开发板对应的uboot 烧写验证与驱动测试 SD卡和EMMC驱动检查 LCD驱动检查 网络驱动 在U-Boot中添加自己的开发板 添加开发板默认配置文件 添加开发板对应的头文件 添加开发板对应的板级文件夹 修改mx6ull_alientek_…

如何在 OpenSUSE 上安装 VirtualBox 7?

VirtualBox 是一款开源的虚拟化软件&#xff0c;允许用户在单个计算机上运行多个操作系统。本文将详细介绍如何在 OpenSUSE 上安装 VirtualBox 7。以下是安装过程的步骤&#xff1a; 步骤一&#xff1a;下载 VirtualBox 7 首先&#xff0c;我们需要下载 VirtualBox 7 的安装包…

Python机器学习入门 - - 贝叶斯算法学习笔记

文章目录 前言一、贝叶斯算法简介二、贝叶斯算法的数学原理1. 条件概率2. 全概率公式3. 贝叶斯公式4. 朴素贝叶斯分类器5. 高斯朴素贝叶斯分类器和伯努利朴素贝叶斯分类器 三、Python实现朴素贝叶斯分类总结 前言 贝叶斯公式是我们高中就耳熟能详的统计概率定理&#xff0c;贝…

Android---APK 瘦身

在 APP 开发过程中&#xff0c;随着业务迭代&#xff0c;apk 体积逐渐变大。项目中累积的无用资源&#xff0c;未压缩的图片资源等&#xff0c;都为 apk 带来了不必要的体积增加。而 APK 的大小会影响应用加载速度、使用的内存量以及消耗的电量。 APK 结构 APK 文件由一个 Zip…

Dubbo源码篇06---SPI神秘的面纱---原理篇---上

Dubbo源码篇06---SPI神秘的面纱---原理篇---上 引言核心思想SPI模块架构设计源码追踪Dubbo的分层模型获取扩展加载器对象创建ExtensionLoaderExtensionLoader自适应扩展对象创建Extension Instance创建生命周期SPI机制获取扩展对象实现类型获取扩展类型使用不同的加载策略加载不…

医学影像检测方法(B超、DR、CT、MRI)

医学影像检测方法 当涉及到医学影像学时&#xff0c;B超&#xff08;超声波检查&#xff09;、DR&#xff08;数字X射线摄影&#xff09;、CT&#xff08;计算机断层扫描&#xff09;和MRI&#xff08;磁共振成像&#xff09;是常见的诊断工具。以下是对这四种影像技术的基本概…

使用app自动化技术实现自动打卡

首先&#xff0c;让我们简单了解一下什么是app自动化脚本。在本质上&#xff0c;自动化脚本是一种程序&#xff0c;它可以执行一系列步骤来完成一项任务&#xff0c;而无需人为干预。在app自动化的上下文中&#xff0c;这些任务可能包括数据收集、输入、测试和其他重复性的任务…