【功能实现】axios实现动态数据

1.安装axios

javascript 复制代码
npm i axios

2.axios调取数据

javascript 复制代码
	import { onMounted,ref } from "vue"
	const titleList=ref([])

    //获取数据库数据,将数据赋值给titleList
	 const getArticles = async () => {
	    const result = await axios.get('http://127.0.0.1:3000/getAccount')
	     titleList.value = result.data.data
	 	console.log(result.data.data);
	 }

    //调用getArticles方法
	onMounted(()=>{
		getArticles()
	})

3.页面使用数据

javascript 复制代码
 <template v-for="item in titleList" :key="item.id">
	        <routerLink :to="`/detail/${item._id}`" class="posts-item shadow-box">
	            <div class="posts-item__infos">
	                <div class="info__dates"><span class="yyc yy-date"></span><span>发布于 2024-12-06</span></div>
	                <h3 class="info__title">{{item.title}}</h3>
	                <div class="info__total">
	                    <div class="total__item"><span class="yyc yy-fire"></span><span>33阅读</span></div>
	                    <div class="total__item"><span class="yyc yy-comment"></span><span>22条评论</span></div>
	                    <div class="total__item"><span class="yyc yy-heart"></span><span>YYF</span></div>
	                </div>
	            </div>
	        </routerLink>
	    </template>

4.优化

1.新建utils文件夹,存放工具,新建request.ts文件

javascript 复制代码
import axios from 'axios'

const http= axios.create({
	 baseURL: '/api',// 通用请求地址前缀
	  timeout: 10000,//超时时间
})

// 添加请求拦截器
http.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
http.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  });
export default http

2.新建api文件夹,在文件夹下新建index.ts文件

javascript 复制代码
import http from '../utils/request.js'

//请求全部文章数据
export const getArticles= () =>{
	//返回一个promise对象
	return http.get('http://127.0.0.1:3000/getArticle')
}

3.在首页直接调用使用

javascript 复制代码
	import { getArticles } from "../api";
	import { onMounted,ref } from "vue"
	const titleList=ref([])

	
	getArticles().then((data)=>{
		    titleList.value = data.data.data
			console.log(data.data.data);
	})
	

	onMounted(()=>{
		getArticles()
	})

4.好处

对于api的集中存放,增加代码规范化,后期更好维护

相关推荐
福兮说5 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理6 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
专业程序开发源6 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源6 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆6667 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
凤城老人7 小时前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
Dovis(誓平步青云)7 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan7 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_8 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒8 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端