Estoy intentando configurar Vue.js 2.0 con Laravel 5.3. Me gustaría poner el <router-view> </router-view> dentro de un componente App.vue principal. ¿Cómo hago para que esto funcione con Vue 2.0?

Esto ya no funciona:

router.start(App, 'app');

Así que probé esto:

const app = new Vue({
    router,
    render: h => h(App)
});

Pero eso no me funciona. ¿Tengo que introducir un paquete para que esto funcione?

¡Gracias!

2
Jamie 6 dic. 2016 a las 20:34
No montaste la aplicación en ningún elemento del documento HTML, así que define el nivel raíz - div con ID único para, por ejemplo, la aplicación, y luego hazlo así const app = new Vue({ router, render: (h) => h(App) }).$mount('#app')
 – 
Belmin Bedak
6 dic. 2016 a las 21:23
¿Te refieres a esto en mi archivo index.blade? <div id="app"></div>
 – 
Jamie
6 dic. 2016 a las 21:27
Sí. Básicamente, no sé cuál es la estructura completa de tu aplicación, pero eso debería funcionar. Mira mi repositorio, para ver cómo lo hice github.com/bedakb/vuewp/tree/master/public/app/themes/vuewp, visite el directorio de aplicaciones para ver cosas vue - índice .php es el lugar donde está mi #app
 – 
Belmin Bedak
6 dic. 2016 a las 21:28
Genial que funciona gracias! Pero, ¿es la mejor práctica? Voy a echar un vistazo a ese repositorio.
 – 
Jamie
6 dic. 2016 a las 21:29
No veo ningún problema con este enfoque. Siempre tienes que decir Vue dónde renderizarse.
 – 
Belmin Bedak
6 dic. 2016 a las 21:31

1 respuesta

La mejor respuesta

Olvidó dar un elemento donde se renderizaría el código de Vue.

Por lo tanto, debe declarar el nivel de raíz con una ID única, por ejemplo, #app y montarlo en la instancia de Vue.

const app = new Vue({
    router,
    render: (h) => h(App)
}).$mount('#app')

Puede ir con el operador de propagación, en lugar de la función de renderizado, más o menos lo mismo, tal vez un poco más limpio para leer

const app = new Vue({
    router,
    ...App 
}).$mount('#app')
2
Belmin Bedak 6 dic. 2016 a las 21:34
Necesito tu ayuda. Mira aquí: stackoverflow.com/questions/41030097/…
 – 
samuel toh
8 dic. 2016 a las 06:20
Lo siento, no soy el chico de Laravel.
 – 
Belmin Bedak
8 dic. 2016 a las 11:43