前提:确保你的电脑安装了 node 和 npm

1、安装 laravel5.7:

composer create-project laravel/laravel --prefer-dist laravel "5.7.*"

2、laravel 自带 vue,所以只要在根目录下执行:

npm install

—— 执行该命令会自动安装 package.json 里面指定的文件。

3、修改 route/web.php:(这步其实是把默认的 welcome 改成了 index)

// 把根目录指向 index.blade.php
Route::get('/', function () {return view('index');
});

并且将 resources/views/index.blade.php 内容设置为:

<!doctype html><html><head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1"><meta name="csrf-token" content="{{ csrf_token() }}">    <title>Laravel</title>    <link href="/css/app.css" rel="stylesheet">

</head><body><div id="app">    <example></example></div></body><script src="{{ mix('js/app.js') }}"></script></html>

—— 其实这里的 index.blade.php,就是使用 cli 构建出来的 index.html 一样的。域名指向了这个 html,然后这个 html 挂载了 app.js,就可以跟 vue 交互了。剩下的事情就是单页面的 vue 怎么用 api 和 后端交互的问题了。没有任何的区别。

  

4、修改 app.js 的模板设置:

// 将
Vue.component('example-component', require('./components/ExampleComponent.vue').default);
// 修改为:
Vue.component('example', require('./components/ExampleComponent.vue').default);

5、执行run,看下laravel 的画面是否出现:

npm run dev  // 或者 npm run watch

6、引入 elementUI:

// 安装,完成后会在 node_modules 下多出 element-ui的文件夹
npm i element-ui -S// 引入,在 resources/assets/js/app.js 文件中加入
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

7、测试elementUI 的效果:

修改ExampleComponent.vue文件 在文件中随便加入element组件:

<template><div class="container"><div class="row"><div class="col-md-8 col-md-offset-2"><div class="panel panel-default"><div class="panel-heading">Example Component</div><div class="panel-body">I'm an example component!</div><el-select v-model="value" placeholder="请选择"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"></el-option></el-select></div></div></div></div>
</template><script>export default {data() {return {options: [{value: '选项1',label: '黄金糕'}, {value: '选项2',label: '双皮奶'}, {value: '选项3',label: '蚵仔煎'}, {value: '选项4',label: '龙须面'}, {value: '选项5',label: '北京烤鸭'}],value: ''}}}
</script>

—— 执行 npm run dev 或者 npm run watch 即可查看效果

8、安装 vue-rouute:

npm install vue-router --save-dev

9、在 resource/js 下创建 route.js 和 App.vue

route.js 添加内容:

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter);export default new VueRouter({saveScrollPosition: true,routes: [{name: "index",path: '/',component: resolve => void(require(['./components/ExampleComponent.vue'], resolve))},]
});

App.vue添加内容:

<template><div><router-view></router-view></div>
</template>
<script scoped>export default {data(){return {}},components: {},computed: {},methods: {},mounted() {},}
</script>

10、app.js 里面引入 route.js 和 App.vue

/*** xxxxxxxx*/require('./bootstrap');window.Vue = require('vue');import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';import App from './App.vue';          //添加的内容
import router from './router.js';     //添加的内容

Vue.use(ElementUI);/*** xxxxxxxx*/// const files = require.context('./', true, /\.vue$/i)
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
// Vue.component('example-component', require('./components/ExampleComponent.vue').default);
Vue.component('example', require('./components/ExampleComponent.vue').default);/*** xxxxxxxx*/const app = new Vue({el: '#app',router,               //添加的内容render:h => h(App)    //添加的内容
});

11、测试路由:

添加一个path 为 /test 的路由,并且在 component 里面创建 TestComponent.vue 组件并加入以下内容:

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter);export default new VueRouter({saveScrollPosition: true,routes: [{name: "index",path: '/',component: resolve => void(require(['./components/ExampleComponent.vue'], resolve))},{name: "test",path: '/test',component: resolve => void(require(['./components/TestComponent.vue'], resolve))},]
});

—— npm run dev ,然后访问 http://laravel.com/#/test进行访问,可得到最新数据。

———— 自此,laravel 下安装 vue ,并安装路由和

//关于 npm install 的说明:

--save 表示开发和线上环境都得有这个库。-- save-dev是只有开发环境才需要,比如 webpack 这个包,就只有开发环境才需要。

对应 package.json 就是 devDependencies 和 dependencies 的配置差别。dependencies里面的开发和线上都会有。

=> 但是: 因为 vue 最后并不需要 build 上线,而是通过 laravel-mix 自动同步到了public 下,所有我觉得与 laravel 的混合使用,是没有开发环境和上线的区别的。

———— 文件介绍 ————

// routes\web.php

这个文件是Laravel的路由文件,Vue开发中用一句指向入口文件

// resources\views

laravel的视图目录,Vue开发中这里只有一个文件,作为入口文件。

// webpack.mix.js

这个文件是laravel-mix的配置文件,其中配置了 vue 编写和 css 的位置:

mix.js('resources/js/app.js', 'public/js').sass('resources/sass/app.scss', 'public/css');

// resources/js/app.js

这个文件是Vue的入口文件,所有的组件都会在这里注册。

// resources/js/components

这个目录下存放的是Vue单文件组件。

// resources/sass

存放 vue 的css 文件

—————— 常用命令 ——————

// 安装 package.json 指定的文件npm install// 编译前端文件,会执行 webpack.mix.js 文件配置,将编译好的资源放到 public 下。
npm run dev
// 自动检测前端文件变化并实时编译。
npm run watch

———— 占位符

转载于:https://www.cnblogs.com/windyet/articles/10160355.html

laravel 使用 vue 和 element相关推荐

  1. 基于 Laravel、Vue.js开发的全新社交系统----ThinkSNS+

    2019独角兽企业重金招聘Python工程师标准>>> ThinkSNS(简称TS)始于2008年,一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方 ...

  2. Vue之element table 后端排序实现

    Vue之element table 后端排序实现 1.如果需要后端排序,需将sortable设置为custom,同时在 Table 上监听sort-change事件,在事件回调中可以获取当前排序的字段 ...

  3. 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题

      方法使用前需了解: 来自"和"小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查 ...

  4. 【Vue】 element ui 引入第三方图标

    最近一个项目用到 vue 和 element ui开发前端.使用element ui自带的icon太少,所以引入第三方的.截止目前为止国内外网络上的相关教程我搜索到没超过5篇,而且都不详细,即使全部阅 ...

  5. Node mysql mvc vue_net MVC +Vue.js+Element UI 笔记

    最近项目需求,要在MVC里用Vue 与 Element UI,故而做个笔记来记录一些遇到的问题和处理思路 (方式比较麻瓜,如果不是临时用的话,建议还是学一下Vue-cli,新项目还是老老实实前后端分离 ...

  6. 用Docker搭建Laravel和Vue项目的开发环境

    在这篇文章中我们将通过Docker在个人本地电脑上构建一个快速.轻量级.不依赖本地电脑所安装的任何开发套件的可复制的Laravel和Vue项目的开发环境(开发环境的所有依赖都安装在Docker构建容器 ...

  7. element筛选 ajax,vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询

    ##vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询 基于element Transfer 直接上代码 XXXXX 编辑XXX 编辑XXXX style=" ...

  8. vue使用element 上传图片,修改图片

    vue使用element 上传图片,修改图片 文章目录 vue使用element 上传图片,修改图片 前言 一.应用场景 1.上传图片并进行放大预览 2.图片上传代码 二.修改已经上传的图片,并展示到 ...

  9. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  10. vue php聊天室,实时聊天室:基于Laravel+Pusher+Vue通过事件广播实现

    之前有说过要整理出一篇事件广播的教程,今天终于有时间把这篇文章给写了出来,本次的教程是基于Laravel+Pusher+Vue,以事件广播作为核心技术,让你可以快速搭建起一个实时聊天室应用,话不多说, ...

最新文章

  1. VS2013在Windows7 64位上变慢的解决方法
  2. Xilinx FIR IP core滤波器系数的重载方法
  3. php中的for循环最多循环多少次,php - 我在PHP中有2次时间,如何运行foreach循环来遍历所有这些日子? (最后24小时同时循环1小时!) - 堆栈内存溢出...
  4. php如何检测图片背景是白色,javascript – 用PHP检测白色图像背景?
  5. Readonly 与Const
  6. jQuery 中$('.classname').on('click',function(){});与$(document).on('click','.classname',function(){});
  7. 关于前端一周知识的总结
  8. chroot--实现系统普通用户在限定目录下活动
  9. java多线程和长连接,三方转换通信的实践(2)——数据库端服务程序
  10. 复合类型_22.scala的复合类型
  11. C语言输入一个三位数,并将其逆序
  12. hprose for java 教程_Hprose for Java 快速入门
  13. 设计模式总览及工厂模式详解
  14. 计算机图形学在游戏设计中的应用
  15. ECMAScript标准命名
  16. mysql忘记root密码拯救方法(flush privileges)
  17. bootstrap导航窗格响应式二级菜单
  18. 如何更新您的Nintendo Switch
  19. 基于Red Hat的Linux安装网易云音乐教程(openSUSE)
  20. Android开发手电筒(支持6.0以上系统智能申请权限)

热门文章

  1. 忘记网站服务器密码怎么办,忘记远程服务器的密码怎么办
  2. kk每日一句:第一句
  3. ffmpeg利用crop滤镜进行视频裁剪
  4. python样本期望值_机器学习中的概率论与梳理统计(Python实现数学期望、方差等)...
  5. html制作带有尖角的边框,纯CSS3制作带尖角的气泡对话框实例特效代码
  6. springboot实现支付宝支付功能
  7. 计算机控制系统总线,计算机控制系统功能之现场总线控制-电脑自学网
  8. 应用未安装!安装包似乎已经损坏
  9. 金山篡改浏览器主页问题(改成毒霸网址大全)
  10. OpenGL为什么配置GLAD及GLFW