Skip to content

Integration for symfony/ux-vue into TYPO3 and Fluid

Notifications You must be signed in to change notification settings

dauskonzept/typo3-ux-vue

Repository files navigation

Latest Stable Version Total Downloads Monthly Downloads Latest Unstable Version License PHP Version Require

TYPO3 Extension "typo3-ux-vue"

What does it do?

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.

Installation

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

Setup

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

Usage

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>

Contributing

Please refer to the contributing document included in this repository.