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大功告成


参考资料





相关文章
|
4月前
|
JavaScript
vue尚品汇商城项目-day03【18.合并params和query参数(Header组件+TypeNav组件)】
vue尚品汇商城项目-day03【18.合并params和query参数(Header组件+TypeNav组件)】
33 0
|
9月前
|
JSON JavaScript 前端开发
VUE&Element,能够进行简单的 Element 页面修改, 能够完成查询所有功能, 能够完成添加功能
VUE&Element,能够进行简单的 Element 页面修改, 能够完成查询所有功能, 能够完成添加功能
75 0
|
JavaScript
vue中关于element的el-image 图片预览功能增加一个下载按钮
vue中关于element的el-image 图片预览功能增加一个下载按钮
1056 0
|
前端开发
Element-UI中的el-upload文件上传组件使用过程中踩的坑
Element-UI中的el-upload文件上传组件使用过程中踩的坑
|
前端开发 JavaScript
Vue3.0项目——打造企业级音乐App(一)Tab栏、轮播图、歌单列表、滚动组件
Vue3.0项目——打造企业级音乐App(一)Tab栏、轮播图、歌单列表、滚动组件
186 0
|
SQL JSON 前端开发
VUE&Element,能够进行简单的 Element 页面修改, 能够完成查询所有功能, 能够完成添加功能(下)
VUE&Element,能够进行简单的 Element 页面修改, 能够完成查询所有功能, 能够完成添加功能
|
JavaScript 前端开发 Java
VUE&Element,能够进行简单的 Element 页面修改, 能够完成查询所有功能, 能够完成添加功能(上)
VUE&Element,能够进行简单的 Element 页面修改, 能够完成查询所有功能, 能够完成添加功能
|
JavaScript 前端开发 容器
VUE&Element,能够进行简单的 Element 页面修改, 能够完成查询所有功能, 能够完成添加功能(中)
VUE&Element,能够进行简单的 Element 页面修改, 能够完成查询所有功能, 能够完成添加功能
|
JavaScript
elementui源码学习之仿写一个el-timeline
elementui源码学习之仿写一个el-timeline
388 0
elementui源码学习之仿写一个el-timeline