-
Notifications
You must be signed in to change notification settings - Fork 133
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
Vue3 Migration from Vue 2 #2596
base: master
Are you sure you want to change the base?
Conversation
Updated Vue Installation due to breaking changes Updated dependencies for Vue and SSR logic Updated SSR logic
https://vuejs.org/guide/extras/rendering-mechanism#templates-vs-render-functions Considering use of templates instead of render functions as templates are simpler, and still conduct SSR. No pressing need to compile render functions from @vue/compiler-sfc actually. Although based on previous PRs:
Will need to do further investigation Edit: OK nvm I managed to reimplemented Server Side Compilation of Render Functions after diving into the codebase for |
Simplify entire SSR without compromising SSR.
Operand of 'delete' operator must be optional Use type guard to ensure attrib exists before deleting
Hi @gerteck, thanks for taking this up! As you have probably read up on all the related past issues/PRs around the migration, I would just want to caution that please take into account of how other developers/reviewers can help in this migration process. If the work is not broken down into manageable chunks, it might be difficult review and assess the changes holistically. |
I am currently facing issues which @EltonGohJH previously faced:
Not too sure how to resolve this issue, but am looking into the matter. Secondly, and related components that utilize portal vue also face the issue of |
Just to add on a small comment, the first error message originates from here. Certainly not trivial to debug, and we'll need to look into if it is worth spending more time on the issue this semester. |
What is the purpose of this pull request?
Related PRs for Reference:
#1534
Overview of changes:
MarkBind (v5.5.3) is currently using Vue 2. However, Vue 2 has reached EOL and limits the extensibility and maintainability of MarkBind, especially the vue-components package. (UI Library Package).
This PR tracks the Vue Migration Vue 2 to Vue 3.
Disgustingly intricate understanding of both Vue 2, Vue 3, low-level dependency APIs and MarkBind (in particular with regards to SSR, Hydrating, Bundling) is needed to conduct this.
Some relevant links to understanding / reviewing the PR:
Additionally, here are some relevant documentation of the codebase I have written and compiled to speed up the understanding process for purpose of peer development/review.
Note that currently, MarkBind Vue components are authored in the Vue Options API style. While migrating to Vue 3, we can continue to use this API style. Future work can consider cost benefit of switching to using Composition API.
will update desc further when i compile the information needed
left to do:
Fixes #2084
Fixes #2597
Fixes #2171 (Took the chance to fix w. changes in vue rendering APIs)
tbc..
Anything you'd like to highlight/discuss:
Testing instructions:
Proposed commit message: (wrap lines at 72 characters)
Migrate Vue 2 to Vue 3
tbc
Checklist: ☑️
Reviewer checklist:
Indicate the SEMVER impact of the PR:
At the end of the review, please label the PR with the appropriate label:
r.Major
,r.Minor
,r.Patch
.Breaking change release note preparation (if applicable):