首页
/ SweetAlert 弹窗库完全使用指南

SweetAlert 弹窗库完全使用指南

2026-02-04 04:30:42作者:齐添朝

什么是 SweetAlert

SweetAlert 是一个功能强大、高度可定制的 JavaScript 弹窗库,它可以替代浏览器原生的 alert()confirm() 方法,提供更美观、更灵活的交互体验。相比原生弹窗,SweetAlert 具有以下优势:

  • 现代化的 UI 设计
  • 支持自定义图标和按钮
  • 支持 Promise 异步处理
  • 高度可定制化的内容区域
  • 丰富的交互选项

安装方法

通过包管理器安装

推荐使用 npm 或 yarn 等包管理器安装 SweetAlert,配合 Webpack 等构建工具使用:

npm install sweetalert --save

安装后,在项目中引入:

import swal from 'sweetalert';

通过 CDN 引入

如果不使用构建工具,也可以通过 CDN 直接引入:

<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>

引入后,全局会注册 swal 函数。

基础使用

简单弹窗

最基本的弹窗只需要传入一个字符串参数:

swal("Hello world!");

这会显示一个包含"Hello world!"文本的弹窗。

带标题的弹窗

传入两个参数时,第一个是标题,第二个是内容:

swal("这是标题", "这是内容文本");

带图标的弹窗

第三个参数可以指定图标类型,支持四种预设图标:

swal("操作成功", "数据已保存", "success");

可用的图标类型有:

  • "success" - 成功图标
  • "error" - 错误图标
  • "warning" - 警告图标
  • "info" - 信息图标

使用配置对象

更推荐的方式是使用配置对象,这样可以设置更多选项:

swal({
  title: "操作成功",
  text: "数据已保存",
  icon: "success",
  button: "确定"
});

进阶功能

Promise 支持

SweetAlert 返回 Promise 对象,可以方便地处理用户交互:

swal("点击确定或取消")
.then((value) => {
  if (value) {
    console.log("用户点击了确定");
  } else {
    console.log("用户取消了操作");
  }
});

危险操作确认

对于危险操作,可以设置 dangerMode 来强调:

swal({
  title: "确认删除?",
  text: "删除后无法恢复!",
  icon: "warning",
  buttons: true,
  dangerMode: true,
})
.then((willDelete) => {
  if (willDelete) {
    // 执行删除操作
  }
});

自定义按钮

可以完全自定义按钮的文本和行为:

swal({
  title: "选择操作",
  buttons: {
    cancel: "取消",
    confirm: {
      text: "确认",
      value: "confirm"
    }
  }
})
.then((value) => {
  console.log(value); // 输出 "confirm" 或 null
});

AJAX 集成

结合 Promise 可以方便地与 AJAX 操作集成:

swal({
  text: '输入电影名称',
  content: "input",
  button: {
    text: "搜索",
    closeModal: false,
  },
})
.then(name => {
  if (!name) return;
  return fetch(`/api/search?q=${name}`);
})
.then(/* 处理结果 */);

高级定制

自定义内容

可以使用 DOM 节点作为弹窗内容:

const input = document.createElement('input');
swal({
  text: "请输入内容",
  content: input
});

与 React 集成

SweetAlert 提供了专门的 React 版本,可以直接使用 JSX:

import swal from '@sweetalert/with-react';

swal(
  <div>
    <h1>React 内容</h1>
    <p>直接在 SweetAlert 中使用 JSX</p>
  </div>
);

升级指南

从 1.x 升级到 2.x 需要注意以下变化:

  1. 回调函数改为 Promise 形式
  2. 不再需要单独引入 CSS 文件
  3. 参数命名更加规范,如:
    • type 改为 icon
    • customClass 改为 className
    • showCancelButton 改为 buttons: true
  4. 输入框功能整合到 content 选项中

最佳实践

  1. 对于重要操作,始终提供取消选项
  2. 危险操作使用 dangerMode 强调
  3. 长时间操作时保持弹窗打开,直到操作完成
  4. 合理使用图标增强视觉反馈
  5. 保持弹窗内容简洁明了

SweetAlert 提供了丰富的配置选项和灵活的扩展方式,可以满足各种复杂的交互需求。通过合理使用,可以显著提升 Web 应用的用户体验。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
docsdocs
暂无描述
Markdown
827
5.48 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
494
515
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
783
1.57 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
800
1.14 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
970
2.28 K
kernelkernel
deepin linux kernel
C
32
16
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
480
312
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.01 K
766
cannbot-skillscannbot-skills
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Markdown
1.26 K
808
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
647
284