• VUE+axios+php获取后端数据(宝塔面板)


    总是听别人说axios好,好在哪里咱也不知道,继上一篇博文还不懂axios,现在稍微可以应用了(暗暗加油!)

    看官网教程的时候一直困惑axios里的url到底是什么,很长一个url链接搞的我更迷惑了(其实就是一个PHP文件,读取php文件获得数据而已)

    vue用axios方法从后端获取数据(感觉确实方便了不少)

    附上前端代码

    <!DOCTYPE html>
    <html>
    <!-- head中引入了element,vue,vue-router,axios -->
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>VUE项目</title>
      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui/lib/theme-chalk/index.css">
      <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.0/lib/index.js"></script>
      <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    
    </head>
    <body>
      <div id="app">
      <!-- 路由占位符 -->
        <router-view></router-view>
      </div>
    
    
      <script>
        // 主页
        const Home = {
        	data() {
            return {
          //用来接收数据
              menulist: []
            }
          },
          template:
          `<div style="height:100%;">
        <el-container class="home-con" style="height:100%">
          <el-header>
            <img src="http://style.wuliwu.top/LOGO" />
            <span>后台管理系统 单页版</span>
          </el-header>
    
          <el-container>
            <el-aside width="200px">
              <el-menu
                default-active="1"
                background-color="#545c64"
                text-color="#fff"
                active-text-color="#ffd04b"
              >
                <el-submenu :index="item.id + ''" v-for="item in menulist" :key="item.id">
                  <template slot="title">
                    <i class="el-icon-location"></i>
                    <span>{{item.username}}</span>
                  </template>
                  <el-menu-item index="1-1" @click="cliuser">用户列表</el-menu-item>
                  <el-menu-item index="1-2" @click="clipic">上传图片</el-menu-item>
                </el-submenu>
              </el-menu>
            </el-aside>
    
            <el-main>
              <router-view></router-view>
            </el-main>
          </el-container>
        </el-container>
      </div>`,
      //钩子函数,直接调用
      created() {
        //用axios去getphp文件'getshow.php'
        axios.get('getshow.php')
           //then获取成功;response成功后的返回值(对象)
       .then(response=>{
        //可以打印出对象
         console.log(response);
        //将数据赋值给menulist
         this.menulist=response.data;
       })
           //抓住获取失败 提示错误
       .catch(error=>{
         console.log(error);
         alert('网络错误,不能访问');
       })
      },
      methods: {
        cliuser() {
          this.$router.push('/user')
        },
        clipic() {
          this.$router.push('/uppicture')
        },
      }
        }
        const router = new VueRouter({
          routes: [
            { path: '/', component: Home }
          ]
        })
        new Vue({
          el: '#app',
          data: {},
          methods: {},
          router
        })
      </script>
    
      <style>
        html,
        body,
        #app {
          height: 100%;
          margin: 0;
          padding: 0;
        }
    
        .el-header {
          background-color: #373d41;
          padding-left: 0;
          color: #fff;
          display: flex;
          font-size: 20px;
          align-items: center;
        }
    
        .el-header img {
          margin-right: 10px;
        }
    
        .el-aside {
          background-color: #545c64;
        }
        .el-card {
          margin-top: 10px;
        }
    
        .el-breadcrumb {
          margin-bottom: 15px;
        }
      </style>
    </body>
    
    </html>
    

      

    下面是PHP代码:

    getshow.php

    <?php 
    header("Content-type:text/html;charset=utf-8");
    //接收数据
    $host = "localhost";
    $username = 'root';
    $password = 'root';
    $db = 'mywu';
    //插入数据到数据库
    //1.连接数据库
    $conn = mysqli_connect($host,$username,$password,$db);
    if (!$conn) {
        die('Could not connect: ' . mysqli_error($con));
    }
    //2.定义一个空数组
    $usersArr = [];
    mysqli_set_charset($conn,'utf8');
    //3.查询数据库
    $user_menu = "select * from test";
    //4.发送sql语句
    $res = mysqli_query($conn,$user_menu);   //结果集的资源
    //5.将结果集资源转换成数据
    // $row = $res->fetch_assoc();
      while($row = $res->fetch_assoc())
    {
    	$userArr[] = $row;
    };
    //将数据转换成JSON赋值给变量$jsonencode
    //一定要转换赋值给另一个变量再输出另一个变量
    $jsonencode = json_encode($userArr);
    //输出变量$jsonencode
    echo $jsonencode;
    ?>
    

      

    内容很简单,不断学习中!

    仅供参考,如有不解之处请在下方评论区留言,谢谢!

      

  • 相关阅读:
    hbase二级索引学习
    redis-cluster集群Mac部署
    http-flume-kafka.conf
    linux 替换文件中的字符串
    flumeDemo
    redis_exporter监控安装
    Hbase内存磁盘大致关系
    spring cloud 尚硅谷学习
    C10K问题
    navicat 远程链接Mysql问题
  • 原文地址:https://www.cnblogs.com/chalkbox/p/12146715.html
Copyright © 2020-2023  润新知