React实现简单易用Toast
March 10, 2019
9068
很多项目中需要实现app中常见的提示效果Toast。这个效果看似简单,实现起来也容易,为了方便,将它封装成npm组件,方便后续使用。
这里也是抛砖引玉,可以查看项目地址一起学习react-comment-toast
效果图
使用方法
1 |
|
组件拆分
- 首先是支持多个提示,不同提示定制化也可以不同。取名为Notice。
- Notice外面还有个容器组件,用来装载Notice并且,暴露一些方法给Toast,起名Notification,是一个单例。
- 最后就是Toast组件,负责直接生成不同的Notice,或者销毁Notification。但是其实Toast只是个对象,而不是真正意义的组件。
Notification
Notification是个容器,里面有一个notice数组。
然后render的时候,循环notices生成一段DOM节点,放到自己的div中。
同时,其还提供一个向notices中添加notice的方法(add)和根据key,在notices中删除notice的方法(remove)。
最后关键的地方,定义一个reRwrite方法,该方法接受一些参数,动态的向DOM中插入一个div,然后再向这个div中插入Notification,最后返回一个含有几个操作这个Notification的方法的对象。(这就是动态实现插入DOM的关键)
1 |
|
Notice
主要是负责接受一些参数,duration,icon,content等等
1 |
|
Toast
Toast首先就是要利用Notification.reWrite初始化一个newNotification,并且保持这个Notification为单例。
然后封装一个notice方法,动态的改变这个newNotification。
最后封装几个常用notice方法暴露出去。
1 |
|
- 本文作者:Warren
- 本文链接:http://unclewarren.cn/2019/03/10/React%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E6%98%93%E7%94%A8Toast/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!
查看评论