主页/PHP笔记/PHP问答/框架Laravel/如何使用 Vue.js 与 Laravel

如何使用 Vue.js 与 Laravel

Bug编译狮

Bug编译狮

Vue.js 是一个流行的前端框架,而 Laravel 是一个 PHP 框架。它们可以很好地结合使用,以构建强大的 web 应用程序。以下是如何将 Vue.js 与 Laravel 结合使用的步骤:

1. 安装 Laravel

首先,你需要安装 Laravel。你可以通过 Composer 来完成这个过程。

composer create-project --prefer-dist laravel/laravel my-vue-app
cd my-vue-app

2. 安装 Vue CLI

Laravel 提供了一个 Vue CLI 工具来快速创建 Vue 组件和项目结构。

npm install -g @vue/cli

3. 创建 Vue 组件

现在,你可以使用 Vue CLI 创建一个新的 Vue 组件。

vue create src/components/HelloWorld.vue

这会生成一个 src/components/HelloWorld.vue 文件,并且你会看到一些默认的模板和脚本文件。

4. 在 Laravel 中引入 Vue

在 Laravel 中,你可以通过 CDN 引入 Vue 或者使用 npm 包管理器来安装 Vue。

使用 CDN 引入 Vue

在你的 HTML 文件中引入 Vue 的 CDN。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Laravel with Vue</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
    <div id="app">
        <h1>{{ message }}</h1>
    </div>

    <script src="{{ asset('js/app.js') }}"></script>
</body>
</html>

使用 npm 包管理器安装 Vue

如果你选择使用 npm 包管理器,可以在 package.json 中添加 Vue 依赖项。

{
    "dependencies": {
        "vue": "^2"
    }
}

然后运行 npm install 命令来安装依赖项。

5. 在 Laravel 中使用 Vue 组件

在 Laravel 中,你可以将 Vue 组件注册为服务提供者,以便在应用中全局访问它。

注册 Vue 组件

AppServiceProvider.php 中注册 Vue 组件。

use IlluminateSupportFacadesApp;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->loadViewsFrom(__DIR__ . '/../resources/views', 'my-vue-app');

        App::singleton('hello-world-component', function () {
            return new MyVueAppComponentsHelloWorld();
        });
    }

    public function register()
    {
        //
    }
}

在视图中使用组件

在你的视图文件中使用注册的 Vue 组件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Laravel with Vue</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
    <div id="app">
        <h1>{{ message }}</h1>
        <hello-world-component></hello-world-component>
    </div>

    <script src="{{ asset('js/app.js') }}"></script>
</body>
</html>

6. 运行应用

最后,运行你的 Laravel 应用。

php artisan serve

现在,你应该能够看到一个带有 Vue 组件的 Laravel 应用程序。你可以根据需要进一步扩展和定制这两个框架。

黑板Bug讲师

黑板Bug讲师

概览

Vue.js 和 Laravel 分别是用于前端和后端开发的两个强大框架。使用它们结合在一起可以实现构建动态单页应用和用户界面时无缝的开发过程。本教程将指导您如何将 Vue.js 引入到 Laravel 项目中。

前置条件

在开始之前,请确保已安装以下软件:

Laravel 安装器

Node.js 和 npm

PHP 7.3 或者 PHP 8.0,以及 Composer。

步骤式说明

步骤1:创建一个新的Laravel项目

首先创建一个新的Laravel项目。运行以下命令:

laravel new my-vue-app

然后,导航到你的项目目录:

cd my-vue-app

步骤2:安装Vue

在你的Laravel应用中,通过npm安装Vue:

npm install vue

步骤 3:在 Laravel 中设置 Vue

Laravel Mix 提供了一种简洁、流畅的API来定义您的应用程序的 Webpack 构建步骤。要集成 Vue,请查找并更新 webpack.mix.js 文件:

mix.js('resources/js/app.js', 'public/js').vue()

步骤 4:创建 Vue 组件

好的,已经完成了这个任务。现在,请随时告诉我您需要我进行下一步操作。

<template>
  <div>
    <h1>{{ message }}</h1>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello Vue! Welcome to Laravel.'
    }
  }
}
</script>

步骤5:在Blade模板中包含Vue组件

在您的主 Blade 文件(例如:resources/views/welcome.blade.php),包含 Vue 组件。

<div id="app">
  <example-component></example-component>
</div>

<script src="{{ mix('js/app.js') }}"></script>

步骤6:编译资源

运行以下命令编译您的资产,其中包括您的Vue组件:

npm run dev

第7步:安装官方的Laravel Vue.js scaffolding

使用Laravel,也可以利用其官方的Vue.js骨架:

composer require laravel/ui
php artisan ui vue
php artisan ui vue --auth

结论。

Vue.js 和 Laravel 现已在您的项目中协同工作。您创建了一个新的 Laravel 项目,安装了 Vue 并添加了组件,同时将它们与 Blade 模板集成在一起。这种组合使得您可以构建现代、响应式的用户界面,同时受益于 Laravel 强大的后端功能。

长工码奴1523

长工码奴1523

Vue.js 和 Laravel 是两个非常流行的前端框架和后端框架,它们结合可以构建出强大的全栈应用。

如何使用 Vue.js 与 Laravel

  1. 安装 Laravel

    • 使用 Composer 安装 Laravel: composer require laravel/laravel
  2. 创建一个新的 Laravel 应用

    composer create-project --prefer-dist laravel/laravel your-project-name

    这将创建一个名为 your-project-name 的新项目,并安装了 Laravel 以及其他依赖包。

  3. 初始化 Laravel 模型

    php artisan make:model MyModel
  4. 设置路由和控制器

    // app/Http/Controllers/HomeController.php
    namespace AppHttpControllers;
    
    use IlluminateHttpRequest;
    
    class HomeController extends Controller
    {
       public function index()
       {
           return view('welcome');
       }
    }
    
    // routes/web.php
    Route::get('/', 'HomeController@index')->name('home');
  5. 配置数据库迁移

    php artisan migrate
  6. 创建 Vue 组件

    <template>
     <div>
       <h1>{{ name }}</h1>
       <button @click="increment">Increment</button>
     </div>
    </template>
    
    <script>
    export default {
     data() {
       return {
         name: 'World',
       };
     },
     methods: {
       increment() {
         this.name = `${this.name}++`;
       },
     },
    };
    </script>
  7. 在 Laravel 中使用 Vue 组件

    
    <!-- resources/views/layouts/app.blade.php -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
    <script src="{{ asset('js/app.js') }}"></script>
    
    <!-- components/VueComponent.vue -->
    <template>
     <div>
       {{ message }}
     </div>
    </template>
    
    <script>
    import axios from 'axios';
    
    export default {
     props: ['message'],
     data() {
       return {
         loading: false,
         error: null,
       };
     },
     mounted() {
       this.fetchData();
     },
     methods: {
       fetchData() {
         this.loading = true;

Comment: This line is not needed as the template already has a closing tag for it. suggestion