Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(compat): add Vue 3 support via @vue/compat (fixes #5196) #6845

Closed
wants to merge 29 commits into from

Commits on Dec 18, 2021

  1. chore(compat): introduce Vue3 testing infrastructure

    Add basic setup for running tests with vue3 compat
    xanf committed Dec 18, 2021
    Copy the full SHA
    e993c71 View commit details
    Browse the repository at this point in the history
  2. chore(compat): replace providing components with getter functions

    Vue3 compat build fails so hard when you have a Vue component
    inside provide. To avoid this replace direct provides with
    combination of getter functions and computed
    xanf committed Dec 18, 2021
    Copy the full SHA
    eff66bf View commit details
    Browse the repository at this point in the history
  3. chore(compat): replace parent/root access with wrappers

    Vue 3 compat does not allow to pass parent as parameter
    to new Vue instance, so we need to introduce a mixin
    to handle that. In future root mixin might be replaced
    with some tiny emitter like mitt
    xanf committed Dec 18, 2021
    Copy the full SHA
    60f3850 View commit details
    Browse the repository at this point in the history
  4. chore(compat): introduce vue3 compatibility wrapper

    * fixes vModel issues
    * fixes rendering problems for functional components
    * expose new helpers: isVue3, nextTick
    xanf committed Dec 18, 2021
    Copy the full SHA
    96e01ae View commit details
    Browse the repository at this point in the history
  5. Copy the full SHA
    d4eadd8 View commit details
    Browse the repository at this point in the history
  6. chore(compat): implement component access from vnode for vue3

    Replace __vue__ with platform dependent access
    xanf committed Dec 18, 2021
    Copy the full SHA
    ff6c300 View commit details
    Browse the repository at this point in the history
  7. Copy the full SHA
    6bdd078 View commit details
    Browse the repository at this point in the history
  8. chore(compat): delay first attempt to show image for nextTick

    It seems Vue 2 and Vue 3 are not consistent about when lifecycle
    hooks are called. Unify this behavior
    xanf committed Dec 18, 2021
    Copy the full SHA
    666308c View commit details
    Browse the repository at this point in the history
  9. feature(vue3): replace transporter implementation with teleport

    * Use built-in teleport in Vue3
    xanf committed Dec 18, 2021
    Copy the full SHA
    cdb7c9f View commit details
    Browse the repository at this point in the history
  10. chore(compat): disable tests related to has-listener in Vue 3

    There is no way to answer, if we have listeners for even when using
    Vue3 compat build with $on available. Disable these tests for now,
    these could be enabled later, when INSTANCE_EVENT_EMITTER flag will
    be disabled
    xanf committed Dec 18, 2021
    Copy the full SHA
    7501419 View commit details
    Browse the repository at this point in the history
  11. chore(compat): skip tbody-transition tests in Vue 3

    * @vue/test-utils v2 does not allow stub transitions ATM
    xanf committed Dec 18, 2021
    Copy the full SHA
    1230750 View commit details
    Browse the repository at this point in the history
  12. chore(compat): fetch fresh template element when checking visibility

    Vue 3 and Vue 2 seems to have different order of execution, so in
    order to get rid of depending on it - just fetch a fresh $tip
    inside setInterval for visibility check
    xanf committed Dec 18, 2021
    Copy the full SHA
    0cd0532 View commit details
    Browse the repository at this point in the history
  13. chore(compat): disable subset of config specs due to localVue

    localVue implementation provided by vue-test-utils-compat is
    limited and does not allow us to cover all use cases
    xanf committed Dec 18, 2021
    Copy the full SHA
    3f90d99 View commit details
    Browse the repository at this point in the history
  14. chore(compat): unify access to component instance from directive

    Getting component instance from directive is different in
    Vue 2 and Vue 3. Introduce new util to solve this
    xanf committed Dec 18, 2021
    Copy the full SHA
    37ecf19 View commit details
    Browse the repository at this point in the history
  15. chore(compat): make tabs properly filter in Vue 3

    * correctly handle `null` inside children
    * fix test
    xanf committed Dec 18, 2021
    Copy the full SHA
    3372217 View commit details
    Browse the repository at this point in the history
  16. Copy the full SHA
    71b584e View commit details
    Browse the repository at this point in the history
  17. chore: fix warnings about accessing undefined fields in render

    * introduce "safe-vue-instance" helper
    xanf committed Dec 18, 2021
    Copy the full SHA
    6e61190 View commit details
    Browse the repository at this point in the history
  18. chore(compat): move tooltip init from created nextTick to mounted

    * nextTick after mounted ensures entire tree is mounted
    xanf committed Dec 18, 2021
    Copy the full SHA
    e3074e1 View commit details
    Browse the repository at this point in the history
  19. Copy the full SHA
    09fb229 View commit details
    Browse the repository at this point in the history
  20. Copy the full SHA
    5b246ce View commit details
    Browse the repository at this point in the history
  21. Copy the full SHA
    961951b View commit details
    Browse the repository at this point in the history
  22. Copy the full SHA
    9225db4 View commit details
    Browse the repository at this point in the history
  23. Copy the full SHA
    92afaad View commit details
    Browse the repository at this point in the history
  24. Copy the full SHA
    2d4bfe4 View commit details
    Browse the repository at this point in the history
  25. Copy the full SHA
    f499476 View commit details
    Browse the repository at this point in the history
  26. Copy the full SHA
    e4dd825 View commit details
    Browse the repository at this point in the history
  27. chore(compat): upgrade vue3 compatibility layer

    * make sure compatConfig is merged for mixins and extends
    * make some "global" compatConfigs for bootstrap-vue
    xanf committed Dec 18, 2021
    Copy the full SHA
    b583ed5 View commit details
    Browse the repository at this point in the history
  28. chore(compat): improve tests setup compat for vue3

    * use as low number of compat flags as possible
    * patch portal-vue and vue-router components with compatConfig
    xanf committed Dec 18, 2021
    Copy the full SHA
    1e13325 View commit details
    Browse the repository at this point in the history
  29. Copy the full SHA
    24f4da1 View commit details
    Browse the repository at this point in the history