当前位置: 首页 > news >正文

橙子建站链接/seo社区

橙子建站链接,seo社区,蚌埠网站建设,完全自建网站我在制作网页时遇到一个问题:在多个Vue组件中频繁调用同一个接口/company/info,导致重复请求,想要减少访问次数。 首先,我需要分析问题的根源。在首页、底部组件以及其他页面都调用了这个接口,每次组件加载时都会发起…

我在制作网页时遇到一个问题:在多个Vue组件中频繁调用同一个接口/company/info,导致重复请求,想要减少访问次数。

首先,我需要分析问题的根源。在首页、底部组件以及其他页面都调用了这个接口,每次组件加载时都会发起请求,这样确实会造成资源浪费,尤其是在数据不常变化的情况下。

使用Vuex进行状态管理是一个不错的选择。将公司信息存储在全局状态中,各个组件通过状态获取数据,而不是各自发起请求。这需要设置Vuex的store,创建一个模块来管理公司信息的状态、actions和mutations。当应用初始化时,或者在需要的时候,触发一次数据获取,之后所有组件都从store中读取数据,避免重复请求。

下面是实施步骤:

1.安装Vuex(如果尚未安装)

npm install vuex --save

2.创建store模块

在路径src/store/modules新建company.js文件,加入下面代码

// src/store/modules/company.js
const state = {info: null,lastFetch: 0
}const mutations = {SET_COMPANY_INFO: (state, info) => {state.info = infostate.lastFetch = Date.now()}
}const actions = {async fetchCompanyInfo({ commit, state }) {// 1小时内缓存策略if (Date.now() - state.lastFetch > 3600 * 1000 || !state.info) {const res = await request.get('/company/info')commit('SET_COMPANY_INFO', res)}return state.info}
}export default {namespaced: true,state,mutations,actions
}

3.在根store中注册模块

找到store下的index.js,没有的话可以新建

// src/store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import company from './modules/company'Vue.use(Vuex)export default new Vuex.Store({modules: {company}
})

4.App.vue初始化数据

<script>
export default {created () {this.$store.dispatch('company/fetchCompanyInfo')}
}
</script>

5.在需要的地方引用

有三种使用方法,第一种:使用mapState辅助函数​

import { mapState } from 'vuex'export default {computed: {...mapState('company', ['info'])},mounted() {console.log(this.info) // 直接访问缓存数据}
}

第二种:使用getter实时获取 

export default {computed: {companyInfo() {return this.$store.state.company.info}}
}

第三种:强制刷新数据(需要时使用)​

// 在需要更新缓存时调用
this.$store.dispatch('company/fetchCompanyInfo', { force: true }).then(info => {// 获取最新数据
})
http://www.lryc.cn/news/577313.html

相关文章:

  • 网站建设体会/百度教育官网
  • Deep Mean-Shift Priors for Image Restoration论文阅读
  • 一些LINQ的普遍写法
  • 文心4.5开源大模型的使用和部署
  • K8S初始化master节点不成功kubelet.service failed(cgroup driver配置问题)
  • Python 数据分析与机器学习入门 (六):Seaborn 可视化技巧,图表更美观
  • Python 库 包 accelerate
  • 插入排序的简单介绍
  • 百度文心大模型4.5系列正式开源,同步开放API服务
  • 百度文心大模型4.5系列正式开源,开源会给百度带来什么?
  • MongoDB 安装使用教程
  • 御控助力打造物联网实训室,赋能职业教育高质量发展
  • I/O I/O基本概念与基本I/O函数 6.30
  • YOLOv12_ultralytics-8.3.145_2025_5_27部分代码阅读笔记-autobackend.py
  • LeetCode Hot100(图论)
  • huggingface----深度学习 Diffusers 库
  • TCPView v4.19 网络检测和拦截工具——东方仙盟
  • 类图+案例+代码详解:软件设计模式----生成器模式(建造者模式)
  • 炸鸡派-基础测试例程
  • STM32 驱动 ADS1015 单端 差分 多通道模式 ADC 转换
  • 海康相机总是抓取前一帧图像
  • jenkins集成sonarqube(使用token进行远程调用)
  • ShardingSphere完成MySQL集群部署
  • RK3588高性能处理器核心技术解析
  • MLOps 基础:驯服模型生命周期的科学
  • GitHub Actions 入门指南:从零开始自动化你的开发流程
  • 手机屏暗点缺陷修复及相关液晶线路激光修复原理
  • 超大js文件多层级引用缓存在网络较差的时候无法调用使用问题
  • BERT 模型详解:结构、原理解析
  • RWKV-8 系列之 DeepEmbedAttention:精简 KV 缓存,尤其适合混合模型(RWKV-7s)