你如何将 Vue.js 包(如 vodal)集成到 Laravel 中?

Posted

技术标签:

【中文标题】你如何将 Vue.js 包(如 vodal)集成到 Laravel 中?【英文标题】:How do you integrate a Vue.js package (like vodal) into Laravel? 【发布时间】:2019-09-30 02:01:19 【问题描述】:

我有一个空的 Laravel 项目,一直在尝试安装 vodal (https://github.com/chenjiahan/vodal) 进入它,但没有运气。

我知道 vue.js 的基础知识,但我仍然是初学者,之前从未在我的 Laravel 应用程序中使用过 Vue.js 包。

注意:我能够下载 https://github.com/chenjiahan/vodal 并让它作为独立的运行。挑战在于将其集成到新的 Laravel 5.8 项目中。

运行后:

npm i -S vodal

这段代码在我的 laravel 应用程序中的什么位置?应该输入什么:

    app.js blade.php 视图文件 一个新的 Vue 组件 还有其他位置吗?

如何让这个 Vodal(或就此而言,任何 vue.js)包与 Laravel 一起使用?我已经连续挣扎了几个小时,如果有任何帮助,我们将不胜感激。

<vodal :show="show" animation="rotate" @hide="show = false">
    <div>A vue modal with animations.</div>
</vodal>
import Vue from 'vue';
import Vodal from 'vodal';

Vue.component(Vodal.name, Vodal);

export default 
  name: 'app',

  data() 
    return 
      show: false
    
  

// include animation styles
@import "vodal/common.css";
@import "vodal/rotate.css";

【问题讨论】:

【参考方案1】:

在 laravel 中,首先打开终端并使用命令 npm install 安装 npm,然后您可以在项目中看到一个名为 node_modules 的新文件夹。你所有的包代码都在这个文件夹里。

现在只需对 vodal 运行您的命令,例如 npm i -S vodal

现在您可以像以前一样将此包导入您的app.js 文件。

在开发模式下运行 npm run watch,这会将所有 vodal 代码从 node_modules 文件夹导入到您的公共目录中的 app.js 文件中。

更新

我看到了您的存储库并下载了它并编辑了您的一些文件。你做错了。 我建议你先学习vuejs,而不是深入它。

问题是您在vue 中调用它,而不是在 vue 组件中,所以为什么要提供以下代码。

export default 
    components: 
        Vodal
    ,
    data() 
        return 
            show: false
        
    

我们在 vue 组件中执行此操作,而不是在 vue 中。 在数据中,我们只返回了vue组件和vodal的官方文档,他们也给出了在vue组件中使用的例子。

你没有在 vue 组件中使用它,所以只需在 vue 中这样做,如下所示

const app = new Vue(
    el: '#app',
    data:
        show: false
    
);

现在是你的 CSS

所以包含 css。我只需将其导入 app.scss 文件,如下所示。

@import "~vodal/common.css";
@import "~vodal/rotate.css";

现在是最后一部分,你最大的错误是。 为什么不在welcome.blade 文件中包含app.js 文件。你所有的代码都写在 app.js 文件中,你不包括它。所以我只需将它包含在如下所示的welcome.blade 文件中

<script src=" asset('js/app.js') " defer></script>
<link rel="stylesheet" href=" asset('css/app.css') ">

毕竟,只需运行npm run watch

所以现在你需要show:true 来显示模态的主要部分。默认情况下是假的,所以它不会显示给你。 我正在为节目制作一个点击事件,所以你了解它是如何工作的。并用评论中的链接分享文件。

【讨论】:

我确实做到了,但它不起作用。 vodal 包在独立模式下工作......问题是,你如何让这样的包在 Laravel 中工作? 它适用于 laravel。你跑了npm run dev 还是npm run watch 我仍然无法让它工作。顺便说一句,我确实在laracasts.com/series/learn-vue-2-step-by-step 观看了“与组件相关”的视频,这是我尝试过的 2 次提交的公共回购:gitlab.com/connecteev/laravel_vodal_test 我在终端 1 中运行了这个:npm i -S vodal npm install npm run watch 我在终端 2 中运行了这个: php artisan serve 然后打开浏览器去127.0.0.1:8000 不走运。我看到的只是prnt.sc/npion4 我错过了什么? 我看到了你的存储库旁遮普语。正如我告诉你的那样导入它,但在顶部导入它 我下载了您的存储库并编辑了一些文件,一切正常。请参阅我对此的更新答案

以上是关于你如何将 Vue.js 包(如 vodal)集成到 Laravel 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PHP smarty 模板与 Vue.js 集成?

如何将 vue.js 与 django 集成?

如何编写一个 Vue JS 内嵌组件

一键生成Vue.js + Web API前后端集成项目

Vue.js CLI 3 - 如何为 CSS/Sass 创建供应商包?

将 Stylelint 与 Vue.js 集成