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
Commits on Dec 18, 2021
-
chore(compat): introduce Vue3 testing infrastructure
Add basic setup for running tests with vue3 compat
-
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
-
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
-
chore(compat): introduce vue3 compatibility wrapper
* fixes vModel issues * fixes rendering problems for functional components * expose new helpers: isVue3, nextTick
-
-
chore(compat): implement component access from vnode for vue3
Replace __vue__ with platform dependent access
-
-
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
-
feature(vue3): replace transporter implementation with teleport
* Use built-in teleport in Vue3
-
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
-
chore(compat): skip tbody-transition tests in Vue 3
* @vue/test-utils v2 does not allow stub transitions ATM
-
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
-
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
-
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
-
chore(compat): make tabs properly filter in Vue 3
* correctly handle `null` inside children * fix test
-
-
chore: fix warnings about accessing undefined fields in render
* introduce "safe-vue-instance" helper
-
chore(compat): move tooltip init from created nextTick to mounted
* nextTick after mounted ensures entire tree is mounted
-
-
-
-
-
chore(compat): upgrade vue3 compatibility layer
* make sure compatConfig is merged for mixins and extends * make some "global" compatConfigs for bootstrap-vue
-
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
-