Vue.js学习(五):vue+axios+php+mysql 实现前端界面数据动态更新

本文介绍如何使用Vue和axios结合PHP实现前后端分离的应用开发。通过具体实例,包括安装axios、Vue组件编写、数据库交互及PHP后端实现。

网上参考了很多例子,都没有关于vue+php实现前后端的例子,后来自己总结了一个,希望大家批评指正。

vue实现动态数据的方式主要有vue-resource和axios,但是从Vue2.0开始,已经不对vue-resource进行更新,因此,本文主要利用axios进行操作。

1、安装axios

npm install axios --save


2、在Vue-cli的components中编写组件

<template>
  <div class="count">
    <table cellspacing="0" border="1px">
      <tr>
        <th>id</th>
        <th>name</th>
        <th>age</th>
        <th>intro</th>
      </tr>
      <tr v-for="user in users">
        <td>{{user.id}}</td>
        <td>{{user.name}}</td>
        <td>{{user.age}}</td>
        <td>{{user.intro}}</td>
      </tr>
    </table>
  </div>
</template>

<script>
import Vuex from "vuex";
import axios from "axios";

  export default{
    name:'count',
    data(){
      return{
        users: []//预先创建一个数组,用于存放请求得到的数据
      }
    },
    created(){ //此处用created相当于对前端页面数据进行初始化
      axios.get("http://xxxx/axios.php").then(res=>{  //这里是ES6的写法,get请求的地址,是小编自己在网站上存放的php文件,后面将介绍其编写,也可以自己定义
        this.users=res.data;//获取数据
        console.log('success');
        console.log(this.users);
      })
    }
  }
</script>

<style scoped>
  table{
    width:600px; 
    height:300px; 
    margin:100px
  }
</style>


3、数据库的创建

本文创建的数据表信息主要由id、user、name、intro几个

可以根据自己的需求,自己创建。具体的创建方式,网上很多,此处不再详细描述。创建的数据如下:


4、需要请求的php

<?php
	header("Access-Control-Allow-Origin: *");//这个必写,否则报错
	$mysqli=new mysqli('localhost','root','passwd','table');//根据自己的数据库填写

	$sql="select * from users";
	$res=$mysqli->query($sql);

	$arr=array();
	while ($row=$res->fetch_assoc()) {
		$arr[]=$row;
	}
	$res->free();
	//关闭连接
	$mysqli->close();
	
	echo(json_encode($arr));//这里用echo而不是return

?>
则最终在液面上输出的结果也为上面数据表那张图所示。


<think>我们正在讨论一个Web应用的技术架构,用户已经明确列出了各个层级使用的技术:后端:SpringBoot,SpringMVC,Shiro,MyBatis前端Vue,Vuex,VueRouter,Axios,ElementUI数据层:MySQL和Ehcache根据用户提供的引用资料,我们可以将技术栈与引用中的内容对应起来,同时需要按照用户的要求展示平台架构组成。注意:用户要求展示的是平台架构组成,包括前后端和数据层的技术栈。因此,我们可以按照分层的方式来描述。我们将按照以下结构组织回答:1.后端技术栈2.前端技术栈3.数据层技术栈4.整体架构概述(可选,如果需要的话)在回答中,我们可以参考用户提供的引用内容,特别是引用[1]和[2]中提到的技术栈,但也要注意用户本次提到的具体技术(比如Shiro和Ehcache在引用中没有提到,需要补充)。另外,注意用户要求回答结构清晰,所以我们将分点描述。开始回答:</think>### Web应用技术架构组成 该Web应用采用典型的三层架构(表示层、业务逻辑层、数据访问层),具体技术栈组成如下: #### 1. 后端技术栈 - **SpringBoot** 核心容器框架,提供自动化配置、依赖管理和嵌入式Tomcat支持,简化Spring应用部署流程[^1] - **SpringMVC** 基于MVC设计模式的Web框架,处理HTTP请求路由和响应渲染。其核心流程为: `DispatcherServlet → HandlerMapping → HandlerAdapter → Controller → ModelAndView → ViewResolver`[^5] - **Shiro** 安全框架,提供身份认证(Authentication)、授权(Authorization)和会话管理功能 - **MyBatis** 持久层框架,通过XML/注解配置SQL映射,支持动态SQL和存储过程[^1] - **辅助技术** Spring AOP(切面编程)、Spring Transaction(事务管理)等 #### 2. 前端技术栈 ```mermaid graph LR A[Vue.js] --> B[Vuex] A --> C[Vue Router] A --> D[Element UI] A --> E[Axios] ``` - **Vue.js** 核心渐进式框架,采用组件化开发模式构建用户界面[^1] - **Vuex** 集中式状态管理库,管理跨组件共享状态(如用户登录信息)[^1] - **Vue Router** 实现单页面应用(SPA)的路由导航和懒加载[^1] - **Element UI** 基于Vue的UI组件库,提供表格、表单等预制组件[^1] - **Axios** Promise-based HTTP客户端,处理前后端数据交互。典型配置包括: ```javascript axios.defaults.timeout = 10000 // 超时设置 axios.defaults.transformRequest = [data => qs.stringify(data)] // 数据序列化[^4] ``` #### 3. 数据层技术栈 - **MySQL** 关系型数据库,存储核心业务数据。通过MyBatis实现ORM映射[^1] - **Ehcache** 进程内缓存框架,用于: - 高频查询结果缓存(如商品分类数据[^1]) - 会话状态存储 - 减轻数据库访问压力 #### 架构交互流程 ```mermaid sequenceDiagram 前端->>后端: Axios发送API请求 后端->>Shiro: 执行安全校验 后端->>MyBatis: 查询MySQL数据库 后端->>Ehcache: 检查缓存命中 后端-->>前端: 返回JSON数据 前端->>Vuex: 更新应用状态 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值