当前位置:首页 > 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 实现组件拖放的方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…

vue实现水印组件

vue实现水印组件

Vue 水印组件实现 基础水印组件实现 创建一个基础水印组件,通过 props 接收文本、颜色、大小等参数: <template> <div class="watermark…

vue组件的实现

vue组件的实现

Vue 组件的实现方式 Vue 组件可以通过多种方式实现,主要包括单文件组件(SFC)、全局注册和局部注册。以下是常见的实现方法: 单文件组件(SFC) 单文件组件是 Vue 最推荐的组件化开发方式…

vue如何实现目录组件

vue如何实现目录组件

实现目录组件的基本思路 在Vue中实现目录组件通常需要结合页面内容的结构化数据(如标题层级),通过动态渲染生成可交互的目录。核心步骤包括提取标题、生成目录结构、实现滚动联动等。 提取标题信息 通过…

vue怎么实现组件缓存

vue怎么实现组件缓存

vue实现组件缓存的方法 在Vue中实现组件缓存可以通过内置的<keep-alive>组件完成,该组件能够缓存不活动的组件实例,避免重复渲染。 使用<keep-alive>…

vue实现组件循环图片

vue实现组件循环图片

Vue 实现组件循环图片的方法 在 Vue 中实现组件循环图片通常可以通过 v-for 指令结合动态数据绑定完成。以下是几种常见的实现方式: 使用静态图片路径数组 假设有一组本地图片路径,可以通过…