当前位置:首页 > uni-app

uniapp组件

2026-01-13 18:58:47uni-app

uniapp组件基础概念

uniapp的组件系统基于Vue.js,支持跨平台开发(H5、小程序、App等)。组件分为内置基础组件(如<view><button>)和自定义组件,需遵循特定规范实现跨平台兼容。

内置组件

uniapp提供以下常用内置组件:

  • 视图容器<view><scroll-view><swiper>
  • 表单元素<input><checkbox><picker>
  • 导航<navigator>(类似<a>标签)
  • 媒体<image><video>
  • 地图<map>(需平台支持)

示例:

<template>
  <view class="container">
    <button @click="handleClick">点击</button>
  </view>
</template>

自定义组件开发

  1. 创建组件文件
    components目录下新建.vue文件,例如my-component.vue

    <template>
      <view>{{ message }}</view>
    </template>
    <script>
    export default {
      props: ['message'],
      data() {
        return { localData: '局部数据' }
      }
    }
    </script>
  2. 注册组件
    全局注册:在main.js中通过Vue.component注册。
    局部注册:在页面中通过components选项引入:

    uniapp组件

    import MyComponent from '@/components/my-component.vue';
    export default {
      components: { MyComponent }
    }
  3. 使用组件
    在模板中直接使用:

    <my-component message="传递数据"></my-component>

组件通信

  • 父传子:通过props传递数据。

  • 子传父:通过$emit触发事件:

    uniapp组件

    // 子组件
    this.$emit('custom-event', payload);
    
    // 父组件
    <child-component @custom-event="handleEvent"></child-component>
  • 跨级通信:使用provide/inject或全局状态管理(如Vuex)。

生命周期

uniapp组件生命周期与Vue一致,常用钩子:

  • created:组件实例创建后调用。
  • mounted:DOM挂载完成。
  • updated:数据更新导致DOM重新渲染后触发。

平台差异处理

通过条件编译解决跨平台兼容问题:

<!-- #ifdef MP-WEIXIN -->
<view>仅微信小程序显示</view>
<!-- #endif -->

注意事项

  1. 组件样式默认隔离,可通过options配置styleIsolation调整。
  2. 小程序端自定义组件需在pages.json中配置usingComponents
  3. 避免频繁更新大数据量的props,可能影响性能。

通过合理使用组件化开发,能有效提升uniapp项目的可维护性和复用性。

标签: 组件uniapp
分享给朋友:

相关文章

vue组件传值实现分页

vue组件传值实现分页

Vue组件传值实现分页的方法 在Vue中实现分页功能,通常需要父子组件之间的数据传递。以下是几种常见的传值方式: 使用props传递数据 父组件通过props向子组件传递当前页码和总页数等分页信息:…

elementui组件

elementui组件

ElementUI 组件概述 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件,适用于快速开发中后台系统。以下是其核心组件分类及典型用法。 基础组件 Button…

uniapp应用市场

uniapp应用市场

uniapp应用市场概述 Uniapp作为跨平台开发框架,支持将代码编译到iOS、Android、Web及各类小程序平台。其应用市场(插件市场)是开发者获取扩展插件、模板、组件的重要资源库,涵盖UI组…

uniapp实名认证

uniapp实名认证

uniapp实名认证实现方法 使用uniCloud实名认证插件 uniapp官方提供了uniCloud的实名认证插件,可快速集成到项目中。插件支持身份证识别、活体检测等功能,需在uniCloud控制台…

uniapp旋转横屏

uniapp旋转横屏

实现横屏模式的方法 在UniApp中实现横屏模式,可以通过配置页面方向或使用CSS旋转实现。以下是两种常见方法: 修改manifest.json配置 在项目的manifest.json文件中…

uniapp接入

uniapp接入

接入UniApp的基本流程 UniApp是一个基于Vue.js的跨平台开发框架,支持一次开发,多端发布。以下是接入UniApp的基本流程: 环境准备 确保已安装Node.js(建议版本12+)和HB…