如何利用vue和php做前后端分离开发?

如何利用vue和php做前后端分离开发?

 

新手上路,前端工程师,刚毕业参加工作两个月,上面让我用vue搭建环境和php工程师一起开发,做前后端分离,然而我只用过简单的vue做一些小组件的经验,完全不知道怎样和php工程师配合,ps: php那边用的是think5 ,我要如何把vue嵌套进去?我这两天查资料加学习发现vue-cli有它自己的逻辑目录,现在整个人很懵逼,可能对于一些有个三五年经验的工程师来说,之只是一个小问题,但是困扰了我好久,最后总结一下问题,1.如何用vue搭建环境和php工程师做前后端分离开发,2能搭建一个给我看看么!

 

 

以前是写PHP的,转前端两年了吧~以前写Laravel比较多,先后在百度、大疆实习,总结一下,不知道对你有没有帮助。

Blade下的Vue

包括Laravel在内的主流PHP框架都是MVC架构的,在视图层通常都有自己的模板引擎。所以在大一入门的时候我一般是这样写的。

编写一个Laravel的模板文件,传进来PHP的变量并渲染。

<html>
    <body>
        <h1>{
              { $hello }}</h1>
    </body>
</html>

通过script标签引入Vue,然后在标签内写vue的逻辑。

<script src="js/vue.min.js"></script>

配合axios这些ajax库,前端就可以只写在resources/views文件夹里,不用管其他的了。

构建工具下的Vue

后来觉得没有NPM和Node实在太不方便了,于是单独建立了前端页面的文件夹,编译到resources/views文件夹里,不过不久之后Laravel就提供了一体化的构建工具。

Laravel Mix提供了一个管道,可以流式编译CSS和JS。

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

类似于Gulp,也是在Node上面跑起来的。

npm install
npm run dev
npm run production

在app.js里面注册组件。

// app.js
Vue.component('example', require('./components/Example.vue'));

然后就可以直接写在PHP的模板里面了。

@extends('layouts.app')

@section('content')
    <example></example> // 这里是使用vue组件的
@endsection

其实原理还是和之前手动编译的一样,先通过webpack翻译组件,生成正常的PHP模板,给PHP调用。

分离与转发

再后来,前端和后端项目在一台服务器,一个文件夹里,太窝囊了,也不利于扩展。因此,大家开始使用Node转发。

这里后端的工作一般是:

  • 编写Lumen代码,提供服务
  • 写好Restful的API文档
  • 用postman进行测试

前端的工作一般是:

  • 编写Vue代码
  • 打包编译
  • 使用Node转发API请求,解决跨域问题
  • 使用PM2处理并发请求

结束

现在写JS比较多了,发现中间层用Koa、express也不错,所以好久都没有用PHP了。现在工作中大部分都是CMS的业务,后端JAVA比较多,前端就直接转发了JAVA的接口。就这样吧,希望对你有所帮助咯,以上。

https://www.zhihu.com/question/67171606

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113760.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matplotlib用于标注文字的函数_python annotate

    matplotlib用于标注文字的函数_python annotateMatplotlib库标注在工作有很大作用:Annotate的构造函数为:Annotation(s,xy,xytext=None,xycoords=‘data’,textcoords=None,arrowprops=None,annotation_clip=None,**kwargs)用于绘制连接图上两点的箭头。关键参数:s为注释文本内容xy为被注释的坐标点,二维元组形如(…

    2025年6月6日
    0
  • Modifying Table Partitions

    Modifying Table PartitionsModifyingTablePartitionsOracleTipsbyBurleson Youcanmodifyatableortablepartitioninanyofthewa

    2022年6月26日
    25
  • 前端VSCode常用插件「建议收藏」

    前端VSCode常用插件「建议收藏」前端VSCode常用插件1.Chinese(Simplified)vscode下载完毕是英文版的,先安装这个插件,改为中文版,所以是我们第一个安装的插件。2.AutoRenameTag修改开始标签,结束标签跟着自动变化,比较好用。3.OneDarkPro颜色主题4.格式化代码(vscode系统自带)但是html标签嵌套比较多,可能需要自动格式化比较好,所以我们可以利用vscode自动的功能格式化代码,暂且不用格式化插件,自动保存照样能格式化代…

    2022年7月25日
    5
  • TCPDF_TCP ACK

    TCPDF_TCP ACK最近在做一个项目报表,用到了使用php来生成pdf文档,采用tcpdf插件,总结一下,欢迎交流。调用tcpdf文件require_once(‘tcpdf.php’);设置时区,否则会导致报错date_default_timezone_set(‘Asia/Shanghai’);实例化tcpdf页面方向(P=肖像,L=景观)、测量(mm)、页面格式$pdf=newTC

    2022年9月8日
    0
  • python中astype用法_python里的astype是什么意思?

    python中astype用法_python里的astype是什么意思?展开全部astype是实现2113变量类型转换,例如astype(type):returnsacopyofthearrayconvertedtothespecifiedtype.a=a.astype(‘Float64’)b=b.astype(‘Int32’)Python中与数据5261类型4102相关函数及属性1653有如下三个:type/dtype/astypetyp…

    2022年6月9日
    203
  • 二代身份证号码验证器[超简单]

    二代身份证号码验证器[超简单]一代身份证号码是十五位,2013年1月1日开始,咱们中国全面停止使用一代身份证了。二代身份证号码:1-6位:表示行政区划的代码。 1、2位,所在省(直辖市,自治区)代码; 3、4位,所在地级市(自治州)代码; 5、6位,所在区(县,自治县,县级市)的代码; 7-14位:表示出生年、月、日 15-16位:所在地派出所代码 17位:性别。奇数(1、3、5、7、9)男性,偶数(2、4、6、8、0)女性 18位:校验位,存在十一个值:0,1,2,3,4,5,6,7,8,9,X,..

    2022年6月27日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号