Closed exalate-issue-sync[bot] closed 1 year ago
Lukas Hirt commented: WIP branch https://github.com/owncloud/web/tree/migrate-to-vue3
Benedikt Kulmann commented: Solving https://jira.owncloud.com/browse/OCIS-1121 first / as a prerequisite would remove the need for the Vue resize
lib.
Lukas Hirt commented: The new version of rollup Vue plugin seems to require Vue 3 as a dependency. We need to be extra careful with this when updating our extensions.
Florian Schade commented: [~bkulmann], [~lhirt], shouldn't be the story "As a developer I want to have strict typing" be a separate issue that covers the whole switch to typescript?
Florian Schade commented: [~bkulmann], i added a section that covers Prerequisites, i will have a look tomorrow what this means from a timing perspective, maybe it's required (if those tasks are too large) to track them in seperate subtasks or even dedicated issues. I keep this updated and will at least get a info till next sprint planning
Lukas Hirt commented: > i added a section that covers Prerequisites, i will have a look tomorrow what this means from a timing perspective, maybe it's required (if those tasks are too large) to track them in seperate subtasks or even dedicated issues. I keep this updated and will at least get a info till next sprint planning
There is already a subtask for ODS https://jira.owncloud.com/browse/WEB-176
Florian Schade commented: thanks [~lhirt], i havent seen this, i updated the tasks // prerequisites section.
This issue got more important recently. For folders with a lot of files any update on a displayed file (e.g. renaming it or selected/deselecting it in the list) invalidates the virtual DOM of the entire file list.
This has been reproduced with a minimalistic vue2 example project to eliminate possible side effects of e.g. vuex-store, our design system, etc. Setup of the example project:
tr
) was wrapped into a custom component so that we could subscribe to the updated
lifecycle hookThe same example project then has been recreated in vue3, which successfully handles invalidation of the virtual DOM for only the row that represents the updated element in the list. Reactive data update in vue3 can happen without Vue.set
. Otherwise the code was unchanged.
Conclusion: in order to work with large file lists efficiently (no lags in the UI during partial updates) we need to update our stack to vue3. Decision: we can't afford to do that at the moment. We'll have to wait until after the oCIS GA release. Decision made by: @dragotin / Klaas Freitag, @tbsbdr / Tobias Baader, @kulmann / Benedikt Kulmann. Workaround: We'll enforce the pagination to never show more than 500 elements on one page.
Web is finally running Vue 3 🥳
discuss:
are dependencies we are using already in good shape reg. vue3 ?
Stories
Prerequisites // Tasks
Vendor dependency compatibility notes (might grow in the migration proccess)
Libs that we're using and are not yet officially ported to Vue 3 (community ports are already existing but not yet tested in production according to their descriptions):
Vue resize(not needed when https://jira.owncloud.com/browse/WEB-101 is DONE)Used in file listing to dynamically update the size of the header