@@ -25,19 +25,11 @@ Then install the bundle using Composer and Symfony Flex:
2525
2626    $ composer require symfony/ux-vue 
2727
28-  Next, in ``webpack.config.js ``, enable Vue.js support:
28+  The Flex recipe will automatically set things up for you, like adding
29+ ``.enableVueLoader() `` to your ``webpack.config.js `` file and adding code
30+ to load your Vue components inside ``assets/app.js ``.
2931
30- .. code-block :: javascript 
31- 
32-     //  webpack.config.js 
33-     //  ... 
34- 
35-     Encore 
36-         //  ... 
37-         .enableVueLoader () 
38-     ; 
39- 
40-  Install a package to help Vue:
32+ Next, install a package to help Vue:
4133
4234.. code-block :: terminal 
4335
@@ -48,48 +40,31 @@ Install a package to help Vue:
4840    $ yarn add vue-loader --dev --force 
4941    $ yarn watch 
5042
51-  Finally, to load your Vue components, add the following lines to ``assets/app.js ``:
43+  That's it! Any files inside ``assets/vue/controllers/ `` can now be rendered as
44+ Vue components.
45+ 
46+ Usage
47+ ----- 
48+ 
49+ The Flex recipe will have already added the ``registerVueControllerComponents() ``
50+ code to your ``assets/app.js `` file:
5251
5352.. code-block :: javascript 
5453
5554    //  assets/app.js 
5655    import  { registerVueControllerComponents  } from  ' @symfony/ux-vue'  ; 
5756
58-     //  Registers Vue.js controller components to allow loading them from Twig 
59-     //  
60-     //  Vue.js controller components are components that are meant to be rendered 
61-     //  from Twig. These component can then rely on other components that won't be 
62-     //  called directly from Twig. 
63-     //  
64-     //  By putting only controller components in `vue/controllers`, you ensure that 
65-     //  internal components won't be automatically included in your JS built file if 
66-     //  they are not necessary. 
67-     registerVueControllerComponents (require .context (' ./vue/controllers'  , true , / \. vue$ /  )); 
68- 
69-     //  If you prefer to lazy-load your Vue.js controller components, in order to keep the JavaScript bundle the smallest as possible, 
70-     //  and improve performance, you can use the following line instead: 
71-     // registerVueControllerComponents(require.context('./vue/controllers', true, /\.vue$/, 'lazy')); 
72- 
73-  That's it! Create an ``assets/vue/controllers/ `` directory and start creating your
74- Vue components.
75- 
76- Usage
77- ----- 
78- 
79- UX Vue.js works by using a system of **Vue.js controller components **: Vue.js components that
80- are registered using ``registerVueControllerComponents `` and that are meant to be rendered
81- from Twig.
57+     registerVueControllerComponents (require .context (' ./vue/controllers'  , true , / \\ . (j| t)sx? $ /  )); 
8258
83- When using  the ``registerVueControllerComponents `` configuration shown previously, all 
84- Vue.js components located in the directory `` assets/vue/controllers `` are registered as 
85- Vue.js controller components .
59+ This will load all Vue components located in  the ``assets/vue/controllers `` 
60+ directory. These are known as ** Vue controller components **: top-level 
61+ components that are meant to be rendered from Twig .
8662
87- You can then render any Vue.js controller component in Twig using the ``vue_component ``.
88- For example:
63+ You can render any Vue controller component in Twig using the ``vue_component() ``.
8964
9065.. code-block :: javascript 
9166
92-     //  assets/vue/controllers/MyComponent .vue 
67+     //  assets/vue/controllers/Hello .vue 
9368    < template>  
9469        < div> Hello {{ name }}! < / div>  
9570    < / template>  
@@ -103,7 +78,7 @@ For example:
10378 .. code-block :: html+twig 
10479
10580    {# templates/home.html.twig #}
106-     <div {{ vue_component('MyComponent ', { 'name': app.user.fullName }) }}></div>
81+     <div {{ vue_component('Hello ', { 'name': app.user.fullName }) }}></div>
10782
10883Events
10984~~~~~~ 
0 commit comments