关于vue 框架与后台框架的混合使用的尝试
这几天我在研究前台框架和后台框架融合的问题,进行了一些尝试;
我前台选择的是 vue,当然也可以选择 react 等其他 mvvm 框架,不过 vue 对于我来说是最熟悉的;
后台话,我选择的是 php 的 lumen 框架,他是laravel 的简化版,因为比较轻量,所以这也是我的选择;
先说下我这边的环境:
系统:Mac os 10.12;
服务器:apache 2.2;
php:7.0;
lumen:5.4;
vue:2.0以上;
这是 lumen 的官网 https://lumen.laravel-china.org/docs/5.3
lumen 的下载和配置,官网里已经有了,我简单说下,首先要下载 composer, 可以用命令下载最新的版本,也可以直接取 github 上下载其他版本,不过这种方法下载完后要使用命令:
composer update //下载依赖
composer update
直接用命令下载的话不需要;
记得 apache 开启重写
我这边的虚拟目录指向:
<virtualhost *:83>
DocumentRoot "/Users/apple/Sites/lumen/blog/public"
ServerName 127.0.0.1:80
<directory "/Users/apple/Sites/lumen/blog/public">
Options Indexes FollowSymLinks ExecCGI
Order allow,deny
Allow from all
AllowOverride All
</directory>
</virtualhost>
配置好 lumen 之后;
cd 到 public文件夹;
下载 vue;
这边创建 vue 项目的时候有2种选择:
1.vue init webpack-simple projectName
这是没有 router的简化版; 在在路由文件或者控制器或视图中指向对映的html 资源;
2.vue init webpack projectName
这是完整的;
在资源指向的时候通过路由来调到对应的页面
我选择的是第二种
再就是三连发
cd projectName
npm install
npm run dev
可以看到浏览器跳出了一个页面正是 vue 成功的页面;
现在东西都已经下载好了
再就是配置;
那么在 apache 中该怎么访问 vue 的项目呢;
我在网络上找了很多方案,最终还是选择了生成静态文件来进行访问,也就是:
npm run build
不过问题又来了, build 之后的修改并没有热加载;
那么在 apache 上能实现么?
我搜索了大半天,并没有发现什么能够实现的(也许是我还没发现);
现在解决的方案我想了一下 webpack 是 node 的,也只能在 npm 上热加载了(也许有其他的轮子能实现);
这里放下我的解决方案:
lumen 目录下的 /routes/web.php:
$app->get('index/{id}', 'UserController@show');
这里我添加了一个路由指向user 控制器下的 show 方法;
lumen 目录下的 /app/http/controllers/
新建的 UserController.php:
<?php namespace App\Http\Controllers; use App\User; use Illuminate\Http\Response; class UserController extends Controller
{
public function show($id)
{ $content = view('hello',['message'=>'Hello LaravelAcademy']);
$status = 200;
$value = 'text/html;charset=utf-8';
return (new Response($content, $status))
->header('Content-Type', $value);
}
}
lumen目录下的/resources/views/
新建文件hello.blade.php:
<!DOCTYPE html>
<html>
<head>
<title>demo</title>
</head>
<body>
<div>视图</div>
{{$message}} {{include('Grewer/dist/index.html')}} </body>
</html>
开启 apache;
在浏览器上输入 http://127.0.0.1:83/index/1
但是你会发现vue 的首页静态资源加载成功了
,其他文件加载缺失败了
这个时候需要对 vue 的 /config/index.js文件进行配置:
我这边是这样修改的
assetsPublicPath: '/Grewer/dist/'
第一个路径为你的项目名称;
修改完后需要重新生成资源:
使用:
npm run build
这样打开http://127.0.0.1:83/index/1

发现已经成功了;
在就是热加载的问题;
开发的话只能在 npm run dev 上的服务器进行(也许其他的也可以,请告诉我);
使用 npm run dev 启动页面:
在该页面上进行调试;
关于跨域的问题:
在 npm 上进行的ajax 调用的借口都是apache 服务器的所以在 vue 的 index.html 上先定义好路径,比如说:
var app = {
root:'http://127.0.0.1:83/'
}
在 vue 页面调用接口的时候前缀就是 app.root+"index/1";
在 lumen 目录下的 /routes/web.php添加:
header("Access-Control-Allow-Origin:*");
我认为这是最简单的跨域解决跨域的方法;
现在的借口都能进行调用获得数据了,然后页面的话通过 vue 的router;
比如我在vue 项目中的/src/router/index.js 文件中新添加了一个路径
{
path: '/test',
name: 'Hello',
component: Hello
},
与根目录指向同一个文件;
需要跳转的时候就跳转到这里:http://127.0.0.1:83/index/1#/test
在需要上线的时候就把 vue 目录下的 app.root 修改一下,再把路由中的允许跨域关掉;
再就是 npm run build;
lumen 框架的根目录可以直接指向 vue 的 index.html;
好了,这就是前台框架和后台的混合了;
写得不好或者粗浅还请见谅;
如果你有更好的方案或者轮子,可以告诉我;
我看到了 laravel 有 mix 可以使用 webpack,下次可以尝试一下
end;
10.21更新,关于跨域的方案已经有了更好的办法,就是 webpack 的代理proxyTable,能解决大部分问题;
后续说明:
本框架里使用的页面是 php 文件,若能直接引用 html 文件,那就可以直接引用项目 build 之后的 index.html 就可以部署项目了
关于vue 框架与后台框架的混合使用的尝试的更多相关文章
- 关于vue 框架与后台框架的混合使用的尝试------转载
这几天我在研究前台框架和后台框架融合的问题,进行了一些尝试; 我前台选择的是 vue,当然也可以选择 react 等其他 mvvm 框架,不过 vue 对于我来说是最熟悉的; 后台话,我选择的是 ph ...
- 神奇!这款 Vue 后台框架居然不用手动配置路由
前言 做 Vue 开发脱离不了路由,尤其是中大型项目,页面多且杂,在配置路由的时候总是会变得逐渐暴躁,因为费时,并且又没有什么太多技术含量,总觉得是在浪费时间. 另外如果接手了别人的项目,当业务有变更 ...
- VUE:渐进式JavaScript框架(小白自学)
VUE:渐进式JavaScript框架 一.官网 英文 https://vuejs.org/ 中文 https://cn.vuejs.org/ 二:渐进式 即有一个核心库,在需要的时候再逐渐添加插件的 ...
- 手把手教你使用Vue/React/Angular三大框架开发Pagination分页组件
DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师.官方网站:devui.designNg组件库:ng-devui(欢迎S ...
- 基于vite2+electron12后台管理模板|Electron后台框架系统
前一溜时间有给大家分享一个 electron+vite跨端短视频 项目.这次分享的是vite2.x和electron实现跨平台后台框架,支持国际化多语言配置.导航菜单+树形菜单两种路由菜单模式.展开/ ...
- 爆款预订,2022 年最值得关注的后台框架 —— Fantastic-admin
前言 如果 2021 年你还没有听说过 Fantastic-admin ,那即将到来的 2022 年可不要再错过了. Fantastic-admin 做为一款开箱即用的 Vue 中后台管理系统框架,距 ...
- EasyUI+MVC-搭建后台框架
一.EasyUI简介: jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面. 官方网站:h ...
- 推荐10个bootstrap及其他框架的后台管理模板
相对于网站前台炫目多彩的设计,网址后台的设计模板貌似有点少,在这里推荐10个可以免费下载的~ 1.自适应超酷整站 win8风格的Bootstrap响应式网站后台管理模板-Apricot 2.boots ...
- jquery easyui+layer后台框架
最近使用jquery easyui搭建了一个后台框架,以方便以后使用 上图先: 下载地址:CSDN下载
随机推荐
- JS全选与不选、反选
思路: 1.获取元素. 2.用for循环历遍数组,把checkbox的checked设置为true即实现全选,把checkbox的checked设置为false即实现不选. 3.通过if判断,如果ch ...
- ABAP 选择屏幕创建标签页
*&---------------------------------------------------------------------* *& Report ZTEST_TAB ...
- Appium python自动化测试系列之Android知识讲解(三)
3.1 ADB工具讲解 3.1.1 什么是ADB呢? 我们不去解释官方语言的翻译,给大家说一个通熟易懂的说法,ADB我理解为他就是电脑和手机连接的桥梁.此连接不是充电的连接,大家不要混淆,说他是一个 ...
- java 线程(1)
Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...
- 吾八哥学Python(二):Python代码编辑器的选用
Python开发环境配置好了,但发现自带的代码编辑器貌似用着有点不大习惯啊,所以咱们就找一个"好用的"代码编辑器吧,网上搜了一下资料,Python常用的编辑器有如下一些: 1. S ...
- Hadoop(九)Hadoop IO之Compression和Codecs
前言 前面一篇介绍了Java怎么去查看数据块的相关信息和怎么去查看文件系统.我们只要知道怎么去查看就行了!接下来我分享的是Hadoop的I/O操作. 在Hadoop中为什么要去使用压缩(Compres ...
- UVa127,"Accordian" Patience
注意1堆的时候,pile后面没有s!!!!因为这个WA了一次,否则就1A了 犯了一个很幼稚很幼稚的错误,申请ans[]后玩了吧ans置0,结果调了好长好长时间,本来是敲完就能过的T T啊啊啊啊啊啊,一 ...
- xml文件的方式实现动态代理基于SpringAOP
1.配置spring容器 导入jar包 com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.j ...
- .8-Vue源码之AST(4)
上一节讲完了超长的start函数,也同时完结了handleStartTag函数,接着continue进入下一轮while循环. 此时剩余的字符串状态如图:,切掉了<div id='app'> ...
- 【初学者必读】能让你月薪过万的5大web前端核心技能
前言Web前端开发所涉及的内容主要包括W3C标准中的结构.行为和表现,那么这三项中我们需要掌握的核心技能是什么呢?看小编来为你揭开谜底的. 1.开发语言 HTML发展历史有二十多年,历经多次版本更新, ...