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
[Vue] Introduce Vue + Workflow commands #17940
Conversation
…rted, and get activity indicator adapter to bind data properly
@sgiehl in that case it'll be a problem no matter what framework we use. I'll modify the guide as you suggested. |
@sgiehl updated this PR to use the local script and not the .bin file, and the developer-documentation pr to mention windows. Can you take another look? |
@diosmosis had another look. Might be good to merge in the latest changes from 4.x-dev, which should fix some of the UI test failures. Some other UI tests files might need an update though due to the changed plugin list. Also there are some other tests failing. Guess you need to add |
This issue is in "needs review" but there has been no activity for 7 days. ping @matomo-org/core-reviewers |
@diosmosis would you mind resolving the conflicts, so we can merge this soonish? |
@sgiehl updated |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me now 👍
Description:
This PR introduces Vue 3 + all the tools required to build and use Vue 3 components within the context of Matomo.
Documentation on the Vue build system integration can be seen here: matomo-org/developer-documentation#541 (as well as some documentation on Matomo's asset pipeline). It is recommended to read this new documentation first to understand how the integration is achieved.
To see how vue components are coded, take a look at the
ExampleVue
plugin in this PR. Or take a look at the proof of concept conversion of the activity indicator directive inCoreHome
.Getting started with vue locally
To test this PR out or just code with Vue, you should just need to checkout this PR's branch and run
npm install
. After that thevue:build
command should work. If not, you may need to runnpm install -g @vue/cli
(but it shouldn't be necessary I think). Note: I am using the latest major version of node locally, v16.7.0.Notes:
const/let
and JS proxies) that will not work in IE11, so even if we compile our JavaScript to work with IE11, Vue will not load properly.AngularJS/Vue communication & backwards compatibility
Every new Vue component has an angularjs directive adapter that initializes it. This is done for backwards compatibility and as a formal layer for AngularJS to communicate with Vue.
Examples for this are in the ExampleVue and CoreHome plugins.
From AngularJS => Vue, we use watches on scopes to change data. Conversely from Vue => AngularJS, events within Vue will be used.
Vue code will never embed or integrate AngularJS code. This is how we keep the layers separate and slowly hollow out the AngularJS code.
Merged asset sizes
Review