Laravel 9 Vue 3 惯性项目
P粉347804896
P粉347804896 2023-08-28 19:25:31
[Vue.js讨论组]

我正在使用 Laravel 和 Vue.js 以及 vite 构建一个 SPA,并且我还有另一个使用 Laravel Breeze 和 Inertia js 的 CMS 项目。如何将这两个项目合并为一个?所以我可以有一个带有 CMS 的 SPA 项目,就像一个管理页面,你可以通过路由进行设置。 这可能吗?

这是我的 CMS 项目中的 app.js

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',
    },
});

这是我的 SPA 项目中的 app.js

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');

我尝试将页面复制到 CMS 中,反之亦然,但它总是给我错误。

我是一个初学者,我只是无法利用惯性来理解它,因为在我的 SPA 项目中,我使用 App.vue 作为布局来调用其他页面,如下所示:

<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>

但是在惯性中我无法做到这一点,有人可以启发我吗?

P粉347804896
P粉347804896

全部回复(1)
P粉311423594

迁移

创建一个新的 Laravel 9 项目,并按照说明安装 Breeze w/ Inertia nad Vue。

然后,您将把 *.vue 文件移至新项目并适当地解析它们。

例如,您可以通过 Spa 中的 Axios 调用获取数据。使用 Inertia,您可以直接从控制器传递数据。

此外,您必须将控制器和所有相关的 PHP 文件导入到新项目中并解析它们以与 Inertia 设计结构保持一致。

测试

如果您还没有这样做,我强烈建议您开始使用 PHPUnit 进行测试。经过适当测试的代码可以使将文件从一个存储库迁移到另一个存储库时不再那么麻烦。

结论

总的来说,这将是一个庞大的项目,可能需要几个月的时间。但是,如果您打算将两个完全不同的项目合并为一个,那么复杂性将需要它,特别是如果两个项目都没有经过测试。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号