Laravel 中使用 Vue 组件化开发(配置)

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

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

我已在 Github 配置好,Laravel 5.1Laravel 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.1gulpfile.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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue组件开发规范是基于Web Components的思想而来的。在Vue组件开发可以帮助我们更好地组织和重用代码。 Vue组件注册有两种方式:全局组件注册和局部组件注册。 全局组件注册语法是通过Vue.component(组件名称, {data:组件数据, template:组件模板内容})来实现的。这样注册的组件可以在整个应用程序使用。 局部组件注册可以在一个父组件注册子组件,只在父组件的作用域内可见。这样可以避免组件之间的命名冲突。 在组件开发,我们希望尽可能多地重用代码,并且避免组件之间的冲突。因此,编写自定义组件的方式并不容易,需要考虑到HTML、CSS和JS的各个方面。 总结起来,Vue组件开发规范遵循了Web Components的思想,通过全局组件注册和局部组件注册来实现组件的重用和代码的组织。这样可以提高代码的可维护性和可复用性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue系列之组件](https://blog.csdn.net/weixin_62277266/article/details/128213687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值