Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue+tp6 php框架如何快速建立一个前后端分离项目

Vue+tp6 php框架如何快速建立一个前后端分离项目

原创
作者头像
PHP开发工程师
修改于 2021-04-26 06:43:49
修改于 2021-04-26 06:43:49
4.7K02
代码可运行
举报
文章被收录于专栏:thinkphp+vuethinkphp+vue
运行总次数:2
代码可运行

作者主要是写后端的,所以本文主要以后端的角度,讲如何使用Vue+Tp框架结合,快速打通一个前后端分离的项目部署,可以作为后端学习Vue的入门步骤,通过此教程,你可以学到在生产环境和本地环境中,vue+tp 等框架是如何结合以及部署的。

提示:

1、写本文章时,代码环境在Windows 系统下,本地使用PHPstudy集成环境讲解。

2、本文章主要向初学Vue的后端同学讲解Vue与后端基础的结合使用

3、如果有看过Vue的文档,并且学习过基础语法以及使用,会使你更易理解下面的内容。

一:安装 Node 环境

  1. 下载地址为:https://nodejs.org/en/
  2. 终端输入以下命令检查是否安装成功:如果输出版本号,说明环境安装成功。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Users\Administrator>node -v
v12.18.3
C:\Users\Administrator>npm -v
6.14.6

二:安装Vue项目环境

  1. 全局安装 vue-cli
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Users\Administrator>npm install --global vue-cli

2. 进入Web项目目录,创建一个基于 webpack 的Vue项目,例如我这边是集成环境的目录下 D:\phpstudy_pro\WWW>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\phpstudy_pro\WWW>vue init webpack vue-demo2
  //创建一个基于webpack 的Vue项目 vue-demo2 是你自定义的项目名,回车后出现下面选项

? Project name vue-demo2
 //项目名,默认回车
? Project description A Vue.js project
 //默认回车
? Author xxx //默认回车
? Vue build standalone
 // 打包方式 默认回车
? Install vue-router? Yes
 //是否使用vue-router,选Y
? Use ESLint to lint your code? No
 //js语法检测,教程中不需要
? Set up unit tests No
 //单元测试工具,教程不需要
? Setup e2e tests with Nightwatch? No
 // 是否需要 端到端测试工具 教程不需要
? Should we run `npm install` for you after the project has been created? (recommended) no
  //我们选择手动
 vue-cli · Generated "vue-demo2".
# Project initialization finished!
# ========================

To get started:

  cd vue-demo2
  npm install (or if using yarn: yarn)
  npm run dev

Documentation can be found at https://vuejs-templates.github.io/webpack

3. 进入我们安装好的Vue项目目录下,安装依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\phpstudy_pro\WWW>cd vue-demo2

D:\phpstudy_pro\WWW\vue-demo2>npm install
//安装好后 项目中会生成node_modules文件夹

4.启动一下吧

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\phpstudy_pro\WWW\vue-demo2>npm run dev
   
//启动成功后如下
 DONE  Compiled successfully in 3266ms  
                                                                                                                                                                                                                
 I  Your application is running here: http://localhost:8080
//访问 http://localhost:8080

5.项目各目录的讲解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1、build:构建脚本目录
    1)build.js ==> 生产环境构建脚本;
    2)check-versions.js ==> 检查npm,node.js版本;
    3)utils.js ==> 构建相关工具方法;
    4)vue-loader.conf.js ==> 配置了css加载器以及编译css之后自动添加前缀;
    5)webpack.base.conf.js ==> webpack基本配置;
    6)webpack.dev.conf.js ==> webpack开发环境配置;
    7)webpack.prod.conf.js ==> webpack生产环境配置;
2、config:项目配置
    1)dev.env.js ==> 开发环境变量;
    2)index.js ==> 项目配置文件;
    3)prod.env.js ==> 生产环境变量;
3、node_modules:npm 加载的项目依赖模块
4、src:开发源码的目录:
    1)assets:资源目录,放置一些图片或者公共js、公共css。这里的资源会被webpack构建;
    2)components:组件目录;
    3)router:前端路由;
    4)App.vue:根组件;
    5)main.js:入口js文件;
5static:静态资源目录,如图片、字体等。不会被webpack构建
6、index.html:首页入口文件,可以添加一些 meta 信息等
7package.json:npm包配置文件,定义了项目的npm脚本,依赖包等信息

三:安装axios和Vue-axios

1、安装axiosvue-axios

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install axios
npm install vue-axios

2、在main.js中导入并全局使用axosvue-axios

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import axios from 'axios'
import VueAxios from "vue-axios";

Vue.config.productionTip = false
Vue.prototype.$axios= axios
Vue.use(VueAxios,axios);

四:通过 axios 访问后端接口地址

1、默认已经开启好后端框架,并且写好了一个测试接口

(我这边是通过PHP+nginx 环境在本地运行的虚拟地址 http://www.apipay.local/ 项目是tp6 ,使用路由模式 接口路径为: vue/:id/:name)

2、创建一个组件,并访问后端测试接口获取数据

1、在components目录下新建一个views目

2、在views目录下新建User.vue

  3、在router目录下的index.js里面配置路由路径

4、在User.vue中,实现简单的页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
 <div class="user-app">
   {{data.msg}}
   <button>获取用户</button>
 </div>
</template>

<script>
  var data = {
   msg :'',
  };
    export default {
        name: "User",
        components: {

        },
      data(){
        return{
           data
          };
        }
    }
</script>

<style scoped>

</style>

5、配置api和跨域问题 ,修改 config/index.js 文件

之后我们就可以使用 /api 代替我们的接口地址了, 回到我们的 User.vue 文件,写我们的 axios

在页面中,我们点击 获取用户 按钮, 应该看到了变化

我们后端的测试接口,返回给了前端用参数处理过的数据

5.打包vue项目

1、我们在开发完成后,正式部署并不是用开发环境 的 npm run dev ,通常是会使用打包命令,将项目打包部署

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\phpstudy_pro\WWW\vue-demo>npm run build
> node build/build.js

Hash: f6e6dd08cd436d9bd752
Version: webpack 3.12.0
Time: 20095ms
                                                  Asset       Size  Chunks             Chunk Names
               static/js/vendor.57afaceb9157d9a5a1db.js     139 kB       0  [emitted]  vendor
                  static/js/app.ff0968066b123c084c9c.js    12.3 kB       1  [emitted]  app
             static/js/manifest.2ae2e69a05c33dfc65f8.js  857 bytes       2  [emitted]  manifest
    static/css/app.2f3da4cc8383bdb00c956e7a1fb6d6f0.css  432 bytes       1  [emitted]  app
static/css/app.2f3da4cc8383bdb00c956e7a1fb6d6f0.css.map  873 bytes          [emitted]
           static/js/vendor.57afaceb9157d9a5a1db.js.map     694 kB       0  [emitted]  vendor
              static/js/app.ff0968066b123c084c9c.js.map    26.9 kB       1  [emitted]  app
         static/js/manifest.2ae2e69a05c33dfc65f8.js.map    4.97 kB       2  [emitted]  manifest
                                             index.html  510 bytes          [emitted]

  Build complete.

  Tip: built files are meant to be served over an HTTP server.
  Opening index.html over file:// won't work.

2、打包好后,可以在项目文件夹中,看到一个 dist 文件夹,这就是打包好的项目文件夹了,我们可以使用 nginx 配置web 项目入口为 dist

Nginx 配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
        listen        8082;
 //端口,因为都在本地环境,为了不和dev冲突
        server_name  www.vuedemo.local;
 //前端页面域名
        root   "D:/phpstudy_pro/WWW/vue-demo/dist";
 //绑定的是dist
        location / {
            index index.php index.html error/index.html;
    
            autoindex  off;
        }
        location ~ /api/ {
   //反向代理 /api/ 很重要的步骤
            rewrite /api/(.*)$ /$1 break;
            proxy_pass http://www.apipay.local;
        }
}

访问一下打包好的页面吧!

可以看到,访问带域名的8082端口的web 项目,也就是打包好的生产环境了,访问接口也成功。

至此,已经完成了 一个 简单的Vue+TP6框架的 前后端分离项目搭建,作为后端同学学习Vue+PHP 项目搭建的入门第一步已经完成,还有更多的细节内容,和优化方法在这里就不不一一写出

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue项目搭建及基本配置
准备阶段会将项目环境配置完毕,包含 node、 npm、 webpack和 vue-cli。已经完成的小伙伴可以跳过此步骤看第二阶段。
流眸
2019/08/12
3.5K0
用 Vue 和 Django 快速搭建前后端分离项目
Web 开发中前后端分离已经是常规性做法,但是不少初学者不太熟悉如何前后端分离,搭建 Demo 的时候遇到的问题也比较多,今天就来分享一下如何用 Vue 和 Django 快速搭建前后端分离项目。
somenzz
2022/10/25
5K0
用 Vue 和 Django 快速搭建前后端分离项目
使用Vue完成前后端分离开发Spring,Django,Flask(一)
本篇题为 使用Vue,Spring Boot,Flask,Django 完成Vue前后端分离开发 将通过一个项目整合(一前端项目对应三个后端项目),完成一个简单的DEMO
双鬼带单
2018/07/12
2.5K0
使用Vue完成前后端分离开发Spring,Django,Flask(一)
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十)打包项目并发布到子目录
FungLeo
2018/01/08
9570
Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十)打包项目并发布到子目录
flask搭建一个前后端分离的系统
我们通常说三端,pc端,android端和ios端。如果前后端不分离,相当是要做三套系统。如果前后端分离的话,可以共用一个后端,前端各自做自己的,不用管后端。
赵云龙龙
2020/03/26
2.7K0
flask搭建一个前后端分离的系统
教你玩转Vue和Django的前后端分离
今天中秋节,先祝大家节日愉快,不在父母身边的都打个电话关心一下吧,我们最容易忽略的人恰恰是最爱我们的父母。
somenzz
2020/11/25
3K0
教你玩转Vue和Django的前后端分离
Django + Vue 快速实现前后端分离的用户认证
Web 后端在主流场景下,注定成为了仅仅提供 API 接口和进行一些需要消耗服务器性能和后端计算载体;
州的先生
2021/07/20
5.4K0
Django + Vue 快速实现前后端分离的用户认证
全栈的自我修养: 001环境搭建 (使用Vue,Spring Boot,Flask 完成Vue前后端分离开发)
本系列文章将从一个完整的项目是如何开发的过程进行编写,期间会涉及前端、后端和一些运维的知识。
双鬼带单
2020/06/28
1.3K0
全栈的自我修养: 001环境搭建 (使用Vue,Spring Boot,Flask 完成Vue前后端分离开发)
Python项目44-前后端分离项目(前戏)
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.9K0
Python项目44-前后端分离项目(前戏)
前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍
webpack的一点介绍 Webpack 把任何一个文件都看成一个模块,模块间可以互相依赖(require or import),webpack 的功能是把相互依赖的文件打包在一起。webpack 本身只能处理原生的 JavaScript 模块,但是 loader 转换器可以将各种类型的资源转换成 JavaScript 模块。这样,任何资源都可以成为 Webpack 可以处理的模块。同时,webpack还有丰富的插件 plugin,可以完成例如js,css的压缩,公共依赖模块的提取和注入,甚至利用模板对 h
smy
2018/04/03
1.2K0
前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍
Vue+Koa2 前后端分离项目线上部署
昨天尝试部署一个 Vue+Koa2 的前后端分离项目,没想到因为前端项目部署的问题,卡了一整天,今天才终于找到了问题所在,成功解决。这篇文章主要谈谈:
Chor
2020/08/02
2.6K0
Vue+Koa2 前后端分离项目线上部署
Spring Boot + Vue前后端分离项目,Maven自动打包整合
现在各类项目为了降低项目、服务模块间的高度耦合性,提出了“前后端分离”,而前后端分离的项目该如何打包呢?
xcbeyond
2020/03/25
5K2
​(非软文)Webpack从入门到实战搭建Vue脚手架(一万字总结)
安装依赖包 (-D 将依赖记录成开发依赖, 只是开发中需要用的依赖, 实际上线不需要的)
Vam的金豆之路
2021/12/01
1.3K0
一个Java程序猿眼中的前后端分离以及Vue.js入门
前后端不分,Jsp 是一个非常典型写法,Jsp 将 HTML 和 Java 代码结合在一起,刚开始的时候,确实提高了生产力,但是时间久了,大伙就发现 Jsp 存在的问题了,对于后端工程师来说,可能不太精通 css ,所以流程一般是这样前端设计页面-->后端把页面改造成 Jsp --> 后端发现问题 --> 页面给前端 --> 前端不会Jsp。这种方式效率低下。特别是在移动互联网兴起后,公司的业务,一般除了 PC 端,还有手机端、小程序等,通常,一套后台系统需要对应多个前端,此时就不可以继续使用前后端不分的开发方式了。
南风
2019/08/29
9300
一个Java程序猿眼中的前后端分离以及Vue.js入门
一个Java程序猿眼中的前后端分离以及Vue.js入门
松哥的书里边,其实有涉及到 Vue,但是并没有详细说过,原因很简单,Vue 的资料都是中文的,把 Vue.js 官网的资料从头到尾浏览一遍该懂的基本就懂了,个人感觉这个是最好的 Vue.js 学习资料 ,因此在我的书里边就没有多说。但是最近总结小伙伴遇到的问题,感觉很多人对前后端分离开发还是两眼一抹黑,所以今天松哥想和大家聊一下前后端分离以及 Vue.js 的一点事,算是一个简单的入门科普吧。
江南一点雨
2019/05/07
1.4K0
一个Java程序猿眼中的前后端分离以及Vue.js入门
cordova打包vue2(webpack)android、ios app
使用cordova打包vue2(webpack)app for android ios 1、vue项目 通过vue-cli脚手架建立项目,使用webpack进行打包,下边是一整套命令。 #npm 版本最好是最新的,升级npm,node版本也有要求 npm i -g npm # 安装脚手架 npm install -g vue-cli #初始化新建项目 vue init webpack vue-app # install dependencies # config/index.js 里可以修改端口 n
码农笔录
2018/06/29
3.1K0
React+Flask打造前后端分离项目开发环境
OK,预览下效果,顺便调试(没啥可调试的/(ㄒoㄒ)/~~)。npm start。效果如下:
Cloud-Cloudys
2020/07/06
6.8K2
海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js
    随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依赖和被依赖关系,这就会带来一个世界性难题,项目部署的时候需要运维来手动配制服务之间通信的协议和地址,稍有不慎就会导致服务异常,同时如果服务器因为坏道或者其他原因导致更换物理机,重新部署新环境的成本也会非常之高。因此,我们就会寄希望于Docker这种的容器技术可以让我们构建产品所需要的所有的服务能够迅速快捷的重新部署,并且可以根据需求做横向扩展,且能够保证稳定的容灾性,在出现问题的时候可以利用守护进程自动重启或者启动容灾备份。
用户9127725
2022/08/08
7320
海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js
59.Vue 使用webpack构建vue项目
在前面的篇章中,已经说明了 webpack4 的基本使用,那么本章节开始在 webpack4 中构建vue项目,同时对比看看这种构建方式,与在网页script导入 vue.js 中的区别。
Devops海洋的渔夫
2020/08/20
2.7K0
59.Vue 使用webpack构建vue项目
vue搭建项目及配置
  ② 检查是否安装成功:cmd输入命令 node -v 或者 npm -v, 如果输出版本号,说明我们安装node环境成功。
生南星
2019/08/26
3.2K0
vue搭建项目及配置
推荐阅读
相关推荐
vue项目搭建及基本配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验