Closed davidclaveau closed 1 year ago
Summary:
Comparatively to GWELLS, the changes to WALLY might require a bit more effort because it uses Vuetify. The syntactical changes between Vuetify 2 and Vuetify 3 seems to have caused quite a headache for other developers in their migrations, so this should be considered in the migration steps.
Dependencies:
vue-motomo (3.13.4-1)
vue-plotly (1.0.1)
vue-router(3.0.3)
vuetify (2.4.2)
vuex (3.0.1)
Dev Dependencies:
@vue/test-utils (1.0.0-beta.30)
vue-template-compiler (2.6.10)
vuetify-loader (1.6.0)
New Features and Benefits
Vue 3 uses newer syntax and functionality introduced in ES6
Reflect
and Proxy
for some of its internal workings, as opposed to previously using the Object.defineProperty and using getters and setters for functionality\<teleport\>
component to move a component around easily in the DOM
Support for Fragments
Composition API may be used to replace Options API
{
data() {
return { name: 'Dave' };
},
methods: { … }
}
}
This is generally seen as the Options API, and we can continue to use this setup in our Vue components
The Options API can create a few limitations or issues with bigger Vue apps
With the Composition API, we can streamline these snippets using the setup()
and using ref
, which creates a wrapper object as a reactive variable
Vue was internally re-written with TypeScript - better TypeScript support
Breaking Changes
High impact:
createStore()
createStore()
setup might require some code refactoring to properly connect and work in a similar manner.Medium impact:
el
property no longer exists.mount()
methoddata: {...} has to change to be
data()`Low Impact:
v-enter
is now v-enter-now
createRouter
, and those transitions work differently
routes
stay pretty well the same in the code"app"
instead of Vue global object
.mount()
, .component()
, etc.@vue/compat
Works as a Vue 3 app, but provides configurable Vue 2-compatible behaviour.
Runs in Vue 2 mode by default, but will emit runtime warnings for features that have been changed or deprecated in Vue 3
Used for:
Acts as an intermediary to run Vue 2 components in Vue 3
What it doesn't do:
Unit Tests Changes
createLocalVue
now uses the global mounting optionnew Vue()
for Vue apps, we now mount the app using createApp
and the mount()
methodglobal
config.global.renderStubDefaultSlot = true
, which will maintain the old behaviour
Describe the task We should further evaluate the benefits (or possible drawbacks) of upgrading WALLY from Vue 2 to Vue 3.
Purpose To understand the time and resources required to upgrade to Vue 3, or better understand what maintaining a Vue 2 application looks like moving forward.
Acceptance Criteria
Additional context