v0.4.0
✨ 新特性:
- 新增 ERipple
- 新增 UNavbarMenu, UNavbarSelect
- 新增 UTable, UTableView
- 新增 MPubSub
- 新增 UComboPagination
- 在每个事件中增加了第二个参数
senderVM。比如@select="onSelect",onSelect 会有两个参数:$event 和 senderVM - UInput 添加
clearable属性 - 添加 Clipboard Utils
⚡️ 增强:
- UListView、USelect 键盘上下移动变为不是立即选择的方式
- 对 UCheckbox 和 URadio 的样式做了一些优化
💩 废弃:
- 移除了
composes这个反人类的 CSS 功能 - 移除 Checkbox0 和 Radio0,放在了 vanilla-ui 库里了
💥 非兼容性更新:
代码结构相关
- 组件路径做了更改,由
src/u-xxx.vue改为src/components/u-xxx.vue。
【原因】1. 已经有部分directives和utils比较复杂了,组件库的功能包含了更多内容,将组件放在一个目录下更为清晰。2.src/components的目录可以与日常项目路径保持同步。
【迁移事项】对于单独继承 ProtoUI 的组件需要替换路径。比如:import XXX from 'proto-ui.vusion/src/u-xxx.vue或@import 'proto-ui.vusion/src/u-xxx.vue/module.css,后面 CSS 的这种路径可以改成简写形式@extend;。
【问题排查】编译阶段即可发现 - 组件命名做了整体更改。
【原因】1. 类似 components: { UXXX } 中直接使用比较方便,以前需要写个mapComponents。组件重命名的时候也比较方便,如import { UCheckbox2 as UCheckbox } from 'xxx'。3. 组件种类较多,目前已经有一些扩展类和图标类的组件了。
【迁移事项】原来 import XXX from default 的组件不会受影响,import { XXX } from exports 的组件需要变更为 UXXX。不影响模板中标签的使用。
【问题排查】编译阶段即可发现 - 父子组件引入方式。现在将
u-xxx-item.vue变为u-xxx.vue中的item.vue。并用 export { UXXXItem } 导出。
【原因】1. 部分父组件的子组件已经很多了,会导致components目录过于冗长,同时引入时需要引入多个子组件,很累啊。。2. 同时解决了 CSSModules 父组件控制子组件的样式问题,废除了烦琐的composes方法。
【迁移事项】依然是继承时的路径问题。同时引入的 import 命名需要修改成import { UXXX } from 'xxx';
【问题排查】编译阶段
组件相关
- MPopper 的修改,UPopup 和 UTooltip 同样。以前的这种使用结构
改为
<u-popper> <u-button>xxx</u-button> <div slot="popper">xxx</div> </u-popper>
【原因】1. 添加弹出层时,会影响到原来组件的层级结构。比如<u-button>xxx <m-popper>xxx</m-popper> </u-button>
<u-tooltip>要套一层,是很蛋疼。2.<u-popper>使用的是 render slot default 的输出方式,可能会对内部比较复杂的组件有意料之外的影响。
【迁移事项】需要搜索所有在模板中使用<u-popper>的组件进行替换
【问题排查】需要人肉走查,不过<u-popper>使用率不高,修改方便 - MPopper 的
open属性重命名为opened,UPopup、UTooltip、USelect 等同样。
【原因】有些组件有 open 方法,和属性名会有冲突。虽然在英文中open比opened用得更广泛,但没有更好的办法了。
【迁移事项】需要搜索所有在代码用中使用open和currentOpen字段,逐个替换。
【问题排查】需要人肉走查。可能有一定风险 - 将 USidebar, UNavbar, UMenu, UPagination, USteps, UTabs, UCrumb, UListView, UCarousel 组件中的
<ul>和<li>改为<nav>和<a>
【原因】1. 原来的<li>没有链接的一些特性,比如 hover 时浏览器有链接提示、右键打开新页面等。2. li 经常要进行清除样式。
【迁移事项】无需做任何事
【问题排查】Review 一下<a>中有<a>的情况,会不会产生问题。 - 将 USuggest, UMultiSelect 合并入 USelect 中,增加了
auto-complete属性
【原因】这几个组件有一些重叠的功能,合并在一起比较好一些
【迁移事项】如果有用<u-suggest>,将它替换为<u-select filterable>,要注意的是,要注意的是,在使用fiterable的情况下,新的 USelect 只支持用data属性传入数据。
【问题排查】需要人肉走查。可能有一定风险 - USelect 添加了
placeholder属性,默认不会选择第一项了。
【原因】为了支持上面的统一,不得不将placeholder功能提出来
【迁移事项】将原来的<u-select-item>请选择</u-select-item>删掉,改为<u-select placeholder="请选择">,也可以不填这个属性使用默认值。
【问题排查】基本没有问题。 - USelect 和 UListView 的 data-source 部分有重构,做了一部分简化,需要认真阅读文档
【原因】原来的 data-source 功能不完善,做了升级
【迁移事项】查找 data-source 属性,对照文档做相应的更改
【问题排查】需要人肉走查。可能有一定的风险 - USingleChoices 和 USingleChoice 改为 MSinglex 和 USinglexItem,对功能进一步做了一些完善
【原因】作为 Mixin 原来的名字有点长
【迁移事项】做名字替换
【问题排查】API没有改动,风险较小