## Todo this is a rough sketch based on collectives migration... - [x] upgrade dependencies to Vue3 - [x] migrate from `Vue.extend()` to `createApp()` - [x] migrate `<var>.sync` to `v-model:<var>` - [x] move from `beforeDestroy` to `beforeUnmount` - [x] don't use `Vue.set()` and `this.$set()` and `this.$delete()` - [x] key attribute in v-for component - [ ] migrate to vue3 eslint rules - [ ] declare emitted events in components - [ ] call function instead of expression - [ ] don't mutate property - [ ] use markRaw for Text editor instances - [ ] fix updating path and migrate to typescript - [ ] pass to Text as custom web component - [ ] use `beforeUnmount` instead of `unmounted` for garbage collection - [ ] rename child components to NcAction* - [ ] in Vue 3, it's `app.config.globalProperties.$router` - [ ] turn computed inner into arrow functions - [ ] migrate to modelValue and saveguard against racy blur - [ ] use `null` instead of `false` for removing href attribute - [ ] await router.push as it's async now
Todo
this is a rough sketch based on collectives migration...
Vue.extend()tocreateApp()<var>.synctov-model:<var>beforeDestroytobeforeUnmountVue.set()andthis.$set()andthis.$delete()beforeUnmountinstead ofunmountedfor garbage collectionapp.config.globalProperties.$routernullinstead offalsefor removing href attribute