SEMI DESIGN 源码学习(五)工具提示

Toast 组件位于 packages/semi-ui/toast/index.tsx

文件默认导出一个 ToastList 类,实际项目中使用的是这个 ToastList 类的静态方法 info, warning, error, success

而他们是由 create 方法创建,这个方法判断页面中是否有 ToastList 组件,没有则新建一个 ToastList,否则直接在现有 ToastList 添加元素。

添加,删除,更新这些操作使用 foundation 进行,这个 foundation 属性是 ToastList 的核心。

在构造器方法看到 foundation 属性是一个接受一个 adapterToastListFoundation 实例,需要看看这个 ToastListFoundation 是啥。

ToastListFoundation 实际上维护的是数组 ToastList.state.list

通过 addupdate 方法添加和更新 toastOpts

最后这个数组的数据用于 ToastListrender 方法渲染每一个 Toast

本文完。

相关推荐
用户21366100357212 小时前
Vue2组件化开发与父子通信
前端·vue.js
Momo__13 小时前
TypeScript satisfies 操作符——比 as 更安全的类型守门员
前端·typescript
用户21366100357213 小时前
Vue2事件系统与指令进阶
前端·vue.js
labixiong13 小时前
实现一个能跑的迷你版Promise(一)
前端·javascript·面试
Csvn15 小时前
`??` 和 `||` 搞混,线上用户头像全挂了
前端
kyriewen15 小时前
白宫前脚下了限制令,OpenAI 后脚就把 GPT-5.6 发了
前端·gpt·openai
用户402692448190816 小时前
CRMEB Pro 新增后台接口全链路:路由、权限、验证器、返回格式一次讲清
前端·后端
泉城老铁16 小时前
springboot+vue+ ffmpeg 实现视频的拉流播放
前端
PedroQue9917 小时前
uni-router v1.8.0新增冷启动守卫补执行
前端·uni-app
xiaok17 小时前
部署之后,本地浏览器还在读取旧缓存导致页面一直显示loading中
前端