Element3.0升级日记 - TimeLine组件

简介: 如果你还不知道如何参加开源项目可以先阅读【跟我一起编写Vue3版ElementUI】

一、初步调试


在/build/build-entry.js中将组件加入白名单


网络异常,图片无法展示
|


npm run dev


网络异常,图片无法展示
|


编译没出问题


浏览器打开element.eleme.cn/#/zh-CN/com…组件Example没有出来 发现有错误


网络异常,图片无法展示
|


断点调试一下


网络异常,图片无法展示
|


简单改一下


网络异常,图片无法展示
|


居然就OK了


网络异常,图片无法展示
|


哈哈  奥利给!!! 可以PR了


二、修改文件结构


调整后的结构 这个地方就不仔细说了。


网络异常,图片无法展示
|


三、VTU测试


接下来我们来重新编写测试Case,换用Vue3后需要使用vue-test-utils-next进行单元测试。 其实从写法上讲比原有的测试方案要简便很多。


参考 /unit/mocks/timeline.spec.js下面的测试用例


网络异常,图片无法展示
|


运行测试


jest packages/timeline --watch


测试代码如下


import Timeline from '../Timeline.vue'
import { mount } from '@vue/test-utils'
describe('Timeline.vue', () => {
  it('should slot works', () => {
    const wrapper = mount(Timeline, {
      slots: {
        default: [`A`, `B`]
      }
    })
    expect(wrapper.find('.el-timeline').text()).toBe('AB')
  })
  it('should props reverse works', () => {
    const wrapper = mount(Timeline, {
      props: {
        reverse: true
      },
      slots: {
        default: [`A`, `B`]
      }
    })
    expect(wrapper.find('.el-timeline').text()).toBe('BA')
  })
  it('should slot null', () => {
    const wrapper = mount(Timeline, {})
    expect(wrapper.find('.el-timeline').text()).toBe('')
  })
  it('should slot empty array', () => {
    const wrapper = mount(Timeline, {
      slots: {
        default: []
      }
    })
    expect(wrapper.find('.el-timeline').text()).toBe('')
  })
})


四、修改逻辑


实验中发下一个小bug 就是逆序属性修改后插槽中的元素没有响应重新排序。


经过调查发现这个是由于Vue的增加了Fragment节点造成的。也就是说如果插槽中的如果放入过个元素会增加Fragment节点。


这个本来是一个新特性。但是在这里需要增加相应的逻辑


修改后的结果


网络异常,图片无法展示
|


五、创建PR


网络异常,图片无法展示
|


相关ISSUE添加评论github.com/kkbjs/eleme…


网络异常,图片无法展示
|


这样PR上面会有相关的显示


网络异常,图片无法展示
|


OK大功告成


参考资料





相关文章
|
开发工具
echarts中如何使用timeline组件
1.吃碗面 这里关于echarts3 官网的示例我不得不吐槽一下,逼格真高!一小部分示例动不动数据就是国家统计局搞出来的,你脸真大。当然他们做的示例的确是很好,这一点毫无疑问。当我看了echarts3关于timeline的使用,我就觉得我有必要写一篇Echarts中timeline组件的使用。
2707 0
|
4月前
|
JavaScript
echarts根据上级元素的大小自动更新echarts(element-resize-detector)配合防抖解决大屏页面卡顿的问题
如何在Vue中使用`element-resize-detector`库来自动更新ECharts图表的大小,以适应其上级元素大小的变化,并结合使用防抖技术来解决大屏页面上的卡顿问题。
179 5
|
6月前
|
开发框架 前端开发 JavaScript
在微信框架模块中,基于Vue&Element前端,通过动态构建投票选项,实现单选、复选的投票操作
在微信框架模块中,基于Vue&Element前端,通过动态构建投票选项,实现单选、复选的投票操作
|
8月前
|
JavaScript 前端开发 定位技术
《vue3实战》在created生命周期中运用slice()方法结合element plus组件实现电影评价系统的分页
《vue3实战》在created生命周期中运用slice()方法结合element plus组件实现电影评价系统的分页
|
存储 JavaScript 前端开发
web前端面试高频考点——Vue3.x升级的重要功能(emits属性、生命周期、多事件、Fragment、移出.async、异步组件写法、移出 filter、Teleport、Suspense...)
web前端面试高频考点——Vue3.x升级的重要功能(emits属性、生命周期、多事件、Fragment、移出.async、异步组件写法、移出 filter、Teleport、Suspense...)
257 0
|
JavaScript 前端开发 API
Vue.js框架简单读取数据库信息并渲染完成news新闻文章列表以及detail详情页功能(小试牛刀)
Vue.js框架简单读取数据库信息并渲染完成news新闻文章列表以及detail详情页功能(小试牛刀)
|
前端开发
Element-UI中的el-upload文件上传组件使用过程中踩的坑
Element-UI中的el-upload文件上传组件使用过程中踩的坑
|
JavaScript
(踩坑篇)vue element-ui resetForm()表单重置失效的问题
好久没更新了,最近在折腾Vue,没用啥时间更新博客。 但是,今天帮朋友看问题时踩到一个坑。 项目时若依的后台管理,有一个数据搜索框,如下(因为部分原因不能展示整个页面)。
1105 0
|
前端开发
前端学习笔记202304学习笔记第十六天-vue3.0-实现新增tag的功能
前端学习笔记202304学习笔记第十六天-vue3.0-实现新增tag的功能
78 0

热门文章

最新文章

下一篇
开通oss服务