laravel+vue结合使用

本文介绍了如何在Laravel 5.1中结合Vue 2.0进行组件化开发,详细阐述了从配置package.json,到gulpfile.js的调整,再到Vue组件的基础例子创建,路由定义以及JS代码的编译合并。通过这些步骤,读者可以学会如何在Laravel项目中集成并使用Vue进行前端开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

更多请关注Laravel.soPIGJIAN BLOG

现今前端组件化开发、MVVM 模式,给开发带来了很多的便利,可读性、可维护性更高。然而自 Laravel 5.3 开始,VueJS 成为框架默认的标配。

本文基于 Laravel 5.1 LTS 版本引入 Vue 2.0 进行配置。

我已在 Github 配置好,Laravel 5.1 和 Laravel 5.2 均有,Clone 下来后按照 README 安装依赖后即可用:
https://github.com/jcc/vue-laravel-example

步骤一:配置 package.json

1. 在根目录下修改 package.json, 可在 devDependencies 下配置你所需的所有依赖。我的配置如下:

{
  "private": true,
  "scripts": {
    "prod": "gulp --production", "dev": "gulp watch" }, "devDependencies": { "bootstrap-sass": "^3.3.7", "gulp": "^3.9.1", "jquery": "^3.1.0", "laravel-elixir": "^6.0.0-9", "laravel-elixir-vue": "^0.1.4", "laravel-elixir-webpack-official": "^1.0.2", "laravel-elixir-browsersync-official": "^1.0.0", "lodash": "^4.14.0", "vue": "^2.0.0-rc.2", "vue-resource": "^0.9.3", "vue-router": "^2.0.0-rc.3" } }

2. 安装配置的依赖,在根目录下,运行:

npm install

当然你可以通过 npm install {package_name} --save-dev 的方式安装你所需的包。

步骤二:配置 gulpfile.js

Laravel 5.1 的 gulpfile.js 内容如下:

var elixir = require('laravel-elixir');

elixir(function(mix) { mix.sass('app.scss'); });

可见还没使用 ES6 的语法,因此我们修改如下:

const elixir = require('laravel-elixir');

require('laravel-elixir-vue'); elixir(mix => { mix.webpack('main.js'); });

mix.webpack('main.js') 是将 resources/assets/js 下的所有文件进行编译合并,合并到 public/js/main.js 文件。

步骤三:配置 Vue 并创建基础例子

1. 在 resources/assets 文件夹下 创建 js/main.js 文件,该文件主要引入 vue 、vue-router 等所需的包。

main.js

import Vue from 'vue/dist/vue.js'
import App from './App.vue' import VueRouter from 'vue-router' Vue.use(VueRouter) import Example from './components/Example.vue' const router = new VueRouter({ mode: 'history', base: __dirname, routes: [ { path: '/example', component: Example } ] }) new Vue(Vue.util.extend({ router }, App)).$mount('#app')

由于 vue-router 需要 Vue.js 0.12.10+ 并不支持 Vue.js 2.0,因此以上的是根据 vue-router v2.0.0+ 的版本配置,配置跟 0.12.10+ 有明显区别。

2. 在 js 文件夹下创建 App.vue 文件

App.vue

<template>
  <div id="app"> <router-view></router-view> </div> </template>

3. 在 js 文件夹下创建 components/Example.vue 文件

Example.vue

<template>
  <h1>{{ msg }}</h1> </template> <script> export default { data () { return { msg: 'This is a Example~!' } } } </script>

到此 vue 的配置已完成,接下来需要配置一下 Laravel, 让 Laravel 成功引导到 Vue

步骤四:定义路由、编译合并 JS 代码

1. 定义路由,在 app/Http/routes.php 加入:

Route::get('example', function () {
    return view('example'); });

2. 创建 example.blade.php 模板

<!DOCTYPE html>
<html lang="en"> <head> <meta charset="UTF-8"> <title>Example</title> </head> <body> <div id="app"></div> <script src="{{ asset('js/main.js') }}"></script> </body> </html>

3. 编译合并 JS 代码

在命令行下,输入:

gulp

如需实时编译,可输入 gulp watch

步骤五:访问

最后通过浏览器访问:http://laravel.app/example

vue-laravel-example

Laravel5.1 + Vue2.0 组件化配置
https://github.com/jcc/vue-laravel-example

更多请关注Laravel.soPIGJIAN BLOG

赞赏支持 赞  |   8 收藏  |  83
如果觉得我的文章对你有用,请随意赞赏
你可能感兴趣的文章

 

 
taurus_wood  · 2016年12月27日

你好,问下你这个服务是用什么起的?即http://laravel.app/example是怎么定义的?

 

 赞 +2 回复

前面路由里设置的

 
— houseme · 2017年04月07日
 
jcc  作者 · 2016年08月20日

https://github.com/jcc/vue-la... Github 新增 Laravel 5.2 + Vue 2.0 - rc.2 例子

 

 赞 回复

 
jcc  作者 · 2016年12月27日

你好,这个例子只需要在运行 Laravel 的环境运行即可以,是通过 Laravel 的路由去访问,你可以看一下我刚发布的 PJ Blog,后台写成了 SPA,在 Laravel 中只需定义一个路由。

 

 赞 回复

 
那些死去的时间  · 2017年02月03日

怎么配置nginx

 

 赞 回复

 
UndeFined  · 1月12日

请问下,怎么实现 vue 的路由按需加载?如何配置

 

 赞 回复

发布评论
关注作者
jcc jcc

415 声望

发布于专栏

PHP 那些事

有关学习PHP、配置PHP环境、LARAVEL、VUEJS等学习

26 人关注关注专栏

系列文章

 

转载于:https://www.cnblogs.com/leigepython/p/9086728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值