首页 > 其他分享 >整站使用Vue(工程化)

整站使用Vue(工程化)

时间:2024-11-17 08:47:20浏览次数:3  
标签:Vue const err 整站 return axios result article 工程化

学习目标:

  • 环境准备
  • Vue项目创建和启动
  • Vue项目开发流程
  • API风格
  • 案例

环境准备

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Vue项目 - 创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

案例

在这里插入图片描述

<script setup>
//发送异步请求 ,获取所有文章数据
//导入axios 
import axios from 'axios';
//定义响应数据
import { ref } from 'vue';
const articleList = ref([])
axios.get('http://localhost:8080/article/getAll')
  .then(result => {
    //把服务器响应的数据保存起来
    articleList.value = result.data;

  }).catch(err => {
    console.log(err)
  })

//定义响应式数据 searchConditions
const searchConditions = ref({
  category: '',
  state: ''
})
//声明seach函数
const search = function () {
  axios.get("http://localhost:8080/article/search", { params: { ...searchConditions.value } })
    .then(result => {
      articleList.value = result.data
    }).catch(err => {
      console.log(err);
    })
}
</script>


<template>
  <!-- html元素 -->
  <div>

    文章分类: <input type="text" v-model="searchConditions.category">

    发布状态: <input type="text" v-model="searchConditions.state">

    <button v-on:click="search">搜索</button>

    <br />
    <br />
    <table border="1 solid" colspa="0" cellspacing="0">
      <tr>
        <th>文章标题</th>
        <th>分类</th>
        <th>发表时间</th>
        <th>状态</th>
        <th>操作</th>
      </tr>
      <tr v-for="(article, index) in articleList">
        <td>{{ article.title }}</td>
        <td>{{ article.category }}</td>
        <td>{{ article.time }}</td>
        <td>{{ article.state }}</td>
        <td>
          <button>编辑</button>
          <button>删除</button>
        </td>
      </tr>

    </table>
  </div>

</template>

在这里插入图片描述

注意: async … await 同步接受网络请求的结果

优化1:

在这里插入图片描述

//导入axios 
import axios from 'axios';
// 定义一个变量 记录公共的前缀
const baseURL = 'http://localhost:8080';
const instance = axios.create({ baseURL })

//获取所有文章数据的函数
export async function articleGetAllService() {
  //同步等待服务器响应相关的结果并返回 asyn await
  return await instance.get('/article/getAll')
    .then(result => {
      // //把服务器响应的数据保存起来
      // articleList.value = result.data;
      return result.data;
    }).catch(err => {
      console.log(err)
    })

}
//根据文章分类和发布状态搜索的函数
export async function articleSearchService(conditions) {
  return await instance.get("/article/search", { params: conditions })
    .then(result => {
      return result.data;
    }).catch(err => {
      console.log(err);
    })
}

优化2:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在src中新建一个util文件夹

//定制请求的实例

//导入axios 
import axios from 'axios';
// 定义一个变量 记录公共的前缀
const baseURL = 'http://localhost:8080';
const instance = axios.create({ baseURL })

//添加响应拦截器
instance.interceptors.response.use(
  result => {
    return result.data;
  },
  err => {
    alert('服务异常')
    return Promise.reject(err);//异步的状态转化为失败的状态
  }
)

export default instance;
// //导入axios 
// import axios from 'axios';
// // 定义一个变量 记录公共的前缀
// const baseURL = 'http://localhost:8080';
// const instance = axios.create({ baseURL })
import request from '@/util/request.js'
//获取所有文章数据的函数
export function articleGetAllService() {
  //同步等待服务器响应相关的结果并返回 asyn await
  return request.get('/article/getAll');
}
//根据文章分类和发布状态搜索的函数
export function articleSearchService(conditions) {
  return request.get("/article/search", { params: conditions });
}
//可以把async 和 wait删除了 因为搬来函数方法不是异步的,所以要加
//现在引入拦截器 默认就是异步的所以可以不写这两个

标签:Vue,const,err,整站,return,axios,result,article,工程化
From: https://blog.csdn.net/2301_79602614/article/details/143821370

相关文章