LARAVEL 中使用 VUE 组件化开发例子

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

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

我已在 Github 配置好,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

时间: 2024-08-31 22:50:59

LARAVEL 中使用 VUE 组件化开发例子的相关文章

06Vue.js快速入门-Vue组件化开发

组件其实就是一个拥有样式.动画.js逻辑.HTML结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue的组件和也做的非常彻底,而且有自己的特色.尤其是她单文件组件开发的方式更是非常方便,而且第三方工具支持也非常丰富,社区也非常活跃,第三方组件也呈井喷之势.当然学习和使用Vue的组件也是我们的最重要的目标. 6.1. 全局扩展方法Vue.extend Vue提供了一个全局的API,Vue.extend可以帮助我们对Vue实例进行扩展,扩展完了之后,就

详解vue.js组件化开发实践_javascript技巧

前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然成为了第一个问题.鉴于目前web前端mvvm框架以及组件化开发方式的流行,决定技术栈采用:vue + es6 + 组件化. 这里首先简单说下web前端组件化开发方式的历程: 最早的组件化结构,代码结构可能如下: - lib/components/calendar |- calendar.css |-

Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作

本教程基于Laravel 5.4 开始之前首先准备好开发环境,我们假设你已经安装好 Laravel,至于 Vue 的引入,请参考官方文档. 做好上述准备工作后就可以开始我们的开发了,本教程中我们将演示文章发布页面的表单 验证 . 首先在 routes/web.php 中新增两条路由规则: Route::get('post/create', 'PostController@create'); Route::post('post/save', 'PostController@save'); 然后在项

一起谈.NET技术,使用Dijit实现界面组件化开发

对于组件化的软件工程设计,很多开发人员都比较熟悉.组件化的设计适合于复杂的软件系统和团队协作开发.把软件系统划分成若干个组件,组件之间通过预先定义好的接口和协议进行通讯和协作,共同完成整个软件系统的职责.团队中的开发人员可以各自负责不同的组件.组件化的思想在桌面应用和Web应用后台开发中比较流行,相关的技术和实践都比较成熟. 而在Web应用的前端部分,组件化一直进展得比较缓慢.这其中的原因有很多,最主要的是Web应用的前端在开始的时候比较简单,没有组件化和设计的必要.随着Ajax应用的流行,We

使用Dijit实现界面组件化开发

对于组件化的软件工程设计,很多开发人员都比较熟悉.组件化的设计适合于复杂的软件系统和团队协作开发.把软件系统划分成若干个组件,组件之间通过预先定义好的接口和协议进行通讯和协作,共同完成整个软件系统的职责.团队中的开发人员可以各自负责不同的组件.组件化的思想在桌面应用和Web应用后台开发中比较流行,相关的技术和实践都比较成熟. 而在Web应用的前端部分,组件化一直进展得比较缓慢.这其中的原因有很多,最主要的是Web应用的前端在开始的时候比较简单,没有组件化和设计的必要.随着Ajax应用的流行,We

React实现轮播组件的开发例子

第一步,需求 首先,写一个组件必须先考虑改组件的需求有哪些,支持的配置需要哪些. 如上已经说了改组件的需求: 轮播的图片 配置轮播图片切换的速度 可配置是否自动轮播 可配置自动轮播的时候鼠标放上去是否暂停 可配置自动轮播的速度 可配置是否需要前后箭头 可配置是否需要 dot (我不知道怎么表述好,反正意思你懂) 这一步先到此为止--- 第二步,构建项目 这里我们是使用 React 框架,当然也是用它的好搭档 webpack 来构建自动化流程咯-? 不懂 webpack 的配置可以看我的博客关于

Laravel 中利用MailThief实现邮件发送例子

MailThief 是 Tighten Co 编写的一个新扩展包,用于在 Laravel 应用中模拟邮件发送,通过该扩展包我们可以在不发送邮件的情况下实现邮件发送测试,这么说可能还是有点绕,下面我们通过一个具体的实例来说明. 假设我们之前为新用户注册成功发送欢迎邮件注册过一个这样的路由: Route::post('register', function () {     // <snip> 这里是注册实现逻辑 </snip>     Mail::send('emails.welco

企业 SOA 设计(2)–组件化产品开发平台

平台整体结构 在产品开发过程中,为了达到业务级别的较大粒度重用,我们需要把纵向把业务进行拆分,以业务组件的形式进行开发,并最终把多个开发完成的业务组件进行组合,形成最终的软件产品. 按照组件化开发的产品,是基于一个公共的产品开发平台来建立的.由平台来提供所有的底层设施.平台包括技术平台和业务平台两个层面.在技术层面上,平台提供了一系列的类库.框架.组件.工具,以及为业务组件化提供相应的技术支撑.在业务层面上,业务平台中积累了大量的封装完善的业务组件,以及一些常用的业务控件,以供开发新产品时进行选

Android开发:由模块化到组件化(一)

在Android SDK一文中,我们谈到模块化和组件化,现在我们来聊聊组件化开发背后的哪些事.最早是在广告SDK中应用组件化,但是同样适用于普通应用开发. 以下高能,请做好心理准备,看不懂请发私信来交流.本文不推荐新手阅读,如果你刚接触Android开发不久,请立刻放弃阅读本文. 模块化和组件化 模块化 组件化不是个新概念,其在各行各业都一直备受重视.至于组件化什么时候在软件工程领域提出已经无从考究了,不过呢可以确认的是组件化最早应用于服务端开发,后来在该思想的指导下,前端开发和移动端开发也产生