Render Vue components directly in Fluid template
This Extensions enables you to render Vue Components directly in Fluid templates. It acts as an integration for symfony/ux-vue into TYPO3.
The recommended way to install the extension is by using Composer. In your Composer based TYPO3 project root, just run:
composer require dskzpt/typo3-ux-vue
Before you start, make sure you have EXT:typo3_encore. This extensions integrates Webpack Encore into TYPO3.
Follow the Symfony UX Vue official documentation.
Additionally:
# Add this line to your package.json dependencies:
"@symfony/ux-vue": "file:vendor/symfony/ux-vue/assets"
# Add these two lines to your app.js:
import {registerVueControllerComponents} from '@symfony/ux-vue';
registerVueControllerComponents(require.context('./vue/controllers', true, /\.vue$/));
# Install Vue.js
$ npm i vue
# or
$ yarn add vue
# Add these lines to your controllers.json:
"@symfony/ux-vue": {
"vue": {
"enabled": true,
"fetch": "eager"
}
}
# run
$ npm install --force
$ npm run watch
# or
$ yarn install --force
$ yarn watch
In any fluid template: Just register the Namespace and use the provided ViewHelper to render your component:
<html xmlns:ux="http://typo3.org/ns/DSKZPT/UX/Vue/ViewHelpers">
<div {ux:vueComponent(name:'MyComponent',props:"{'name':'John Doe'}")}></div>
</html>
Please refer to the contributing document included in this repository.