当前位置:首页 > uni-app

uniapp 设置弹窗

2026-03-05 07:46:45uni-app

使用 uni.showModal 创建基础弹窗

uni.showModal 是 Uniapp 提供的标准弹窗 API,支持标题、内容、确认和取消按钮的配置。

uni.showModal({
  title: '提示',
  content: '确认执行此操作吗?',
  success(res) {
    if (res.confirm) {
      console.log('用户点击确认');
    } else if (res.cancel) {
      console.log('用户点击取消');
    }
  }
});

参数说明:

  • title:弹窗标题(可选)。
  • content:弹窗内容(必填)。
  • showCancel:是否显示取消按钮(默认 true)。
  • confirmText/cancelText:自定义按钮文字。

自定义弹窗组件

通过 Vue 组件实现高度自定义的弹窗样式和逻辑。

步骤 1:创建组件
新建 components/custom-modal.vue 文件:

uniapp 设置弹窗

<template>
  <view v-if="visible" class="modal-mask">
    <view class="modal-content">
      <slot name="header"></slot>
      <slot name="body"></slot>
      <view class="modal-footer">
        <button @click="onCancel">取消</button>
        <button @click="onConfirm">确认</button>
      </view>
    </view>
  </view>
</template>

<script>
export default {
  props: {
    visible: Boolean
  },
  methods: {
    onConfirm() {
      this.$emit('confirm');
    },
    onCancel() {
      this.$emit('cancel');
    }
  }
};
</script>

<style>
.modal-mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
}
.modal-content {
  background: #fff;
  padding: 20px;
  border-radius: 8px;
  width: 80%;
}
</style>

步骤 2:在页面中使用

<template>
  <view>
    <button @click="showModal = true">打开弹窗</button>
    <custom-modal :visible="showModal" @confirm="handleConfirm" @cancel="showModal = false">
      <template #header>
        <text>自定义标题</text>
      </template>
      <template #body>
        <text>这里是自定义内容</text>
      </template>
    </custom-modal>
  </view>
</template>

<script>
import CustomModal from '@/components/custom-modal.vue';
export default {
  components: { CustomModal },
  data() {
    return {
      showModal: false
    };
  },
  methods: {
    handleConfirm() {
      console.log('确认操作');
      this.showModal = false;
    }
  }
};
</script>

使用第三方组件库(如 uView UI

uView UI 提供了丰富的弹窗组件,简化开发流程。

uniapp 设置弹窗

安装 uView UI

npm install uview-ui

配置 main.js

import uView from 'uview-ui';
Vue.use(uView);

使用弹窗组件

<template>
  <view>
    <u-button @click="showUViewModal">uView 弹窗</u-button>
    <u-modal v-model="showModal" :title="标题" @confirm="confirmCallback">
      <text>这里是内容区域</text>
    </u-modal>
  </view>
</template>

<script>
export default {
  data() {
    return {
      showModal: false
    };
  },
  methods: {
    showUViewModal() {
      this.showModal = true;
    },
    confirmCallback() {
      console.log('点击确认');
    }
  }
};
</script>

注意事项

  1. 性能优化:频繁触发的弹窗建议使用组件而非 uni.showModal,减少渲染开销。
  2. 多端兼容:自定义组件需测试各平台(H5、小程序、App)的样式兼容性。
  3. 遮罩层点击关闭:可通过监听遮罩层点击事件关闭弹窗,增强用户体验。

标签: uniapp
分享给朋友:

相关文章

uniapp应用市场

uniapp应用市场

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

uniapp请求超时处理

uniapp请求超时处理

uniapp请求超时处理方法 在uniapp中处理请求超时可以通过多种方式实现,以下是几种常见的处理策略: 设置全局请求超时时间 在main.js中配置全局请求超时时间,适用于所有请求: uni…

uniapp安装uview

uniapp安装uview

安装uView到UniApp项目 方法一:通过npm安装(推荐) 确保项目已初始化npm,在项目根目录执行以下命令: npm install uview-ui 在main.js文件中引入并注册uV…

uniapp打包

uniapp打包

uniapp打包步骤 H5平台打包 在项目根目录运行以下命令生成H5资源文件: npm run build:h5 打包完成后,文件默认输出到/dist/build/h5目录,可直接部署到Web服务器…

海康 uniapp

海康 uniapp

海康威视与UniApp集成方案 海康威视的硬件设备(如摄像头、NVR等)与UniApp结合,通常需要通过海康的开放平台API或SDK实现功能调用。以下是具体实现方法: 获取海康威视开放平台权限 注册…

任务 uniapp

任务 uniapp

uniapp 简介 Uniapp 是一款基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,开发者可以通过一套代码适配多个…