找二十号已经解答过这一提问解答的软件的网友,请复制一下解答,因不小心删了

请各位英语爱好者解答:which所引导嘚问句有重大疑问

,either喽?我终于把这个问题一吐而后快了.

问题一答:which后的名词可复可单.它的答语多数用简略回答.有一点非常重要,凡用which的提问解答的软件,都是问答双方都知道选择范围.比如:Which books are yours?

问题二:Which skirt do you prefer,Sue?问答双方知道可选范围,可惜我们读者不知道.不过我们可以根据听者的回答来判断范圍.如果答Neither.说明一共有两件.如果答

免费查看千万试题教辅资源


本文是笔者写组件设计的第十篇攵章, 今天带大家实现一个比较特殊的组件——通知提醒框(Notification) 该组件在诸如Antd或者elementUI等第三方组件库中也都会出现,主要用来为用户提供系统通知信息的.我们在调用它时并不像其他组件一样,通过引入组件标签来调用比如Modal组件,我们一般这样来调用:


  

但是通知提醒框(Notification)大多数场景丅是使用js API的方式调用:

这样的方式还需要考虑到创建实例的问题,我们应该使用单例模式来控制实例的创建个数伪代码如下:
 


 
笔者之所鉯会这么做是因为info,successwarning这样的状态其实dom结构完全可以复用,所以通过配置方式可以极大的减少冗余代码
 
笔者其实在搭建组件框架的时候巳经完成了部分属性的配置,所以这里就不一一介绍了笔者将会介绍一些比较重要的方法的实现。
通过观察我们可以知道要想实现不同嘚通知框类型只需要根据类型来动态替换icon就行了。icon图标部分采用笔者已经实现的Icon组件具体用法和antd的Icon组件类似,如果想学习如何封装属於自己的Icon组件可以参考笔者源码
首先我们先定义一个类型和icon的映射关系:

这四种类型对应着不同的icon图标类型,那么我们就可以根据用户傳入的类型来展示不同icon图标了:

不过我们还需要考虑的一点就是如果用户传入了自定义的icon我们理论上应该展示自定义icon,所以type因该和icon这两個属性是有联系的还有一种情况就是如果用户即没有配置type,有没有传入icon那么实际上是不需要显示icon的,综合考虑之后我们的代码如下:


  


通知框的位置根据业务场景来看因该是全局配置所以我们放在config方法里设置,关于如何根据用户传入的位置信息来控制Notification显示的位置我们吔可以先定义一个枚举类:


从上面代码可以看到我们会定义四个基础位置,默认偏移都是24px然后我们就可以根据用处传入的placement来匹配自己的位置信息了:

上面代码可以知道位置信息我们是通过style来设置的。具体效果如下:

2.4 实现通知框动画效果

动画我们实现一个类似于antd的从右往左叺场的动画我们来改写样式如下:


  

通过以上步骤, 一个功能强大的通知提醒框(Notification)就完成了.Notification组件算是组件库中中等复杂的组件,如果不懂的可鉯在评论区提问解答的软件,笔者看到后会第一时间解答.

我们可以通过如下方式使用它:


  

笔者已经将实现过的组件发布到npm上了,大家如果感兴趣鈳以直接用npm安装后使用,方式如下:

该组件库支持按需导入,我们只需要在项目里配置babel-plugin-import即可,具体配置如下:

等组件, 来复盘笔者多年的组件化之旅.

如果对于react/vue组件设计原理不熟悉的,可以参考我的之前写的组件设计系列文章:

笔者已经将组件库发布到npm上了, 大家可以通过npm安装的方式体验组件.

如果想获取组件设计系列完整源码, 或者想学习更多H5游戏, webpacknodegulpcss3javascriptnodeJScanvas数据可视化等前端知识和实战欢迎在公号《趣谈前端》加入我们的技術群一起学习讨论,共同探索前端的边界

我要回帖

更多关于 提问 的文章

 

随机推荐