Laravel 9 Vue 3 慣性項目
P粉347804896
2023-08-28 19:25:31
<p>我正在使用 Laravel 和 Vue.js 以及 vite 建立 SPA,我還有另一個使用 Laravel Breeze 和 Inertia js 的 CMS 專案。如何將這兩個項目合併為一個?所以我可以有一個帶有 CMS 的 SPA 項目,就像一個管理頁面,你可以透過路由進行設定。
這可能嗎? </p>
<p>這是我的 CMS 專案中的 app.js</p>
<pre class="brush:php;toolbar:false;">import '../css/app.css';
import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/vue3';
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m';
const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel';
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')),
setup({ el, App, props, plugin }) {
return createApp({ render: () => h(App, props) })
.use(plugin)
.use(ZiggyVue, Ziggy)
.mount(el);
},
progress: {
color: '#4B5563',
},
});</pre>
<p>這是我的 SPA 專案中的 app.js</p>
<pre class="brush:php;toolbar:false;">import '../css/navbar.css';
import '../css/home.css';
import '../css/kenapa.css';
import '../css/ceritakami.css';
import '../css/karir.css';
import '../css/lowongan.css';
import '../css/media.css';
import '../css/gabung.css';
import '../css/mitra.css';
import '../css/download.css';
import '../css/footer.css';
import { createApp } from 'vue';
import App from './layouts/app.vue';
createApp(App).mount('#app');</pre>
<p>我嘗試將頁面複製到 CMS 中,反之亦然,但它總是給我錯誤。</p>
<p>我是一個初學者,我只是無法利用慣性來理解它,因為在我的 SPA 專案中,我使用 App.vue 作為佈局來呼叫其他頁面,如下所示:</p>
<pre class="brush:php;toolbar:false;"><NavbarVue/>
<Home/>
<Kenapa/>
<Cerita/>
<Karir/>
<Lowongan/>
<Media/>
<Gabung/>
<Mitra/>
<Download/>
<Footer/>
</template>
<script setup lang="ts">
import NavbarVue from '../components/Navbar.vue';
import Home from '../pages/Home.vue';
import Media from '../pages/Media.vue';
import Kenapa from '../pages/Kenapa.vue';
import Cerita from '../pages/Cerita.vue';
import Lowongan from '../pages/Lowongan.vue';
import Karir from '../pages/Karir.vue';
import Gabung from '../pages/Gabung.vue';
import Mitra from '../pages/Mitra.vue';
import Download from '../pages/Download.vue';
import Footer from '../components/Footer.vue';
</script></pre>
<p>但是在慣性中我無法做到這一點,有人可以啟發我嗎? </p>
遷移
建立一個新的 Laravel 9 項目,並依照指示安裝 Breeze w/ Inertia nad Vue。
#然後,您將把 *.vue 檔案移至新專案並適當地解析它們。
例如,您可以透過 Spa 中的 Axios 呼叫來取得資料。使用 Inertia,您可以直接從控制器傳遞資料。
此外,您必須將控制器和所有相關的 PHP 檔案匯入到新專案中並解析它們以與 Inertia 設計結構保持一致。
測試
如果您還沒有這樣做,我強烈建議您開始使用 PHPUnit 進行測試。經過適當測試的程式碼可以使將檔案從一個儲存庫遷移到另一個儲存庫時不再那麼麻煩。
結論
總的來說,這將是一個龐大的項目,可能需要幾個月的時間。但是,如果您打算將兩個完全不同的項目合併為一個,那麼複雜性將需要它,特別是如果兩個項目都沒有經過測試。