#vue.js #laravel-8 #vuejs3
Вопрос:
Я перехожу с JS на Vue 3. Я также использую Laravel 8. Каждый просмотр страницы содержит соответствующие JS, относящиеся только к странице. Поэтому мне нужна помощь в создании правильной структуры Vue3, чтобы я мог заменить этот JS кодом Vue 3. Каждый созданный компонент специфичен только для просмотра страницы. Итак,я узнал, что это способ создания одного компонента Vue3:
import { createApp } from "vue"
import Front from "./components/PageOne"
createApp(PageOne).mount('#app1')
Затем я пытаюсь создать PageTwo
с помощью:
import Front from "./components/PageTwo"
createApp(PageTwo).mount('#app2')
и я представляю содержимое в файле макета:
@extends('layouts.master')
<div id="app1">
@yield('contentChild')
</div>
<div id="app2">
@yield('content')
</div>
<script>
src="{{mix('js/app.js')}}"
</script>
В результате я получаю содержимое первой страницы и содержимое второй страницы, отображаемые в одном и том же представлении страницы. ИТОГ: Мне нужна помощь в том, как доставить конкретный код Vue3 для определенных просмотров страниц.
Большое спасибо!
Ответ №1:
«Стандартный» способ решить эту проблему в Vue — использовать маршрутизатор Vue https://router.vuejs.org/
Таким образом, вы можете настроить конкретные маршруты и указать, какой компонент (страницу) следует доставлять в рамках данного макета.
Таким образом, ваш основной App.vue
может выглядеть примерно так:
<template>
<div id="app" :class="'app-wrapper ' $route.name">
<AppNav />
<NotificationContainer />
<router-view :key="$route.fullPath" />
</div>
</template>
Где <router-view :key="$route.fullPath" />
служит компонент, представляющий данную страницу.