用Vuex存储可配置下载的ip地址(用XML进行ajax请求配置文件)

1.在public文件夹下创建一个名为Configuration的文件在创建一个Configuration.txt里面就放IP地址(这里的名字可以随便命名一定性的被人解读文件含义)

例如:

javascript 复制代码
http://172.171.208.1:8003

2.在store文件夹中创建一个名为 ajaxModule.js 的 Vuex 模块:

javascript 复制代码
const state = {
    changeIp: ''//参数
};
const mutations = {
    setChangeIp(state, ip) {
        state.changeIp = ip;
    }
};
const getters = {
    changeIp: state => state.changeIp,
};
const actions = {
    fetchChangeIp({ commit }) {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
                var Changeid = this.responseText; 
                commit('setChangeIp', Changeid);
            }
        };
        xhttp.open("GET", "../../Configuration/Configuration.txt", true);
        xhttp.send();
    }
};
export default {
    namespaced: true,/// 添加这一行启用命名空间
    state,
    mutations,
    actions,
    getters
};

3.在您的store中index.js引入ajaxModule模块

javascript 复制代码
import Vue from 'vue'
import Vuex from 'vuex'
import ajaxModule from './ajaxModule';

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
  },
  getters: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    ajax:ajaxModule//引入模块
  }
})

4.在全局页面中调用该 Vuex 模块:

javascript 复制代码
<template>
  <div>
    <p>Change IP: {{ changeIp }}</p>
  </div>
</template>

<script>
import { mapActions, mapGetters } from "vuex"; //引入vuex模块

export default {
  computed: {
    // 添加命名空间 'ajax' 到 mapGetters
    ...mapGetters("ajax", ["changeIp"]),
  },
  methods: {
    // 同样,添加命名空间 'ajax' 到 mapActions
    ...mapActions("ajax", ["fetchChangeIp"]),

    frontDownload() {
      var a = document.createElement("a"); // 创建一个<a></a>标签
      var peizhiurl = this.changeIp; //获取到配置文件的ip地址
      a.href = peizhiurl + "/ViebPlugin.exe"; //拼接起来就可以了http://172.17.208.1:8003/ViebPlugin.exe
      a.download = "VideoWebPlugin.exe"; //
      a.style.display = "none"; // 障眼法藏起来a标签
      document.body.appendChild(a); // 将a标签追加到文档对象中
      a.click(); // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
      a.remove(); // 一次性的,用完就删除a标签
    },
  },
};
</script>
相关推荐
+VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
雪芽蓝域zzs3 小时前
第 7 章:双 Y 轴组合图(柱状 + 折线,看板高频场景)
vue.js·echars
一 乐3 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序
vx-程序开发4 小时前
【计算机毕设】django校园跑腿服务系统83141
java·数据库·vue.js·spring boot·spring·elasticsearch·django
一 乐5 小时前
养老院管理系统|基于springboot + vue养老院管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计
雪芽蓝域zzs7 小时前
第 12 章:一页多图表看板(多 BaseEchart 组件共存,后台首页大屏效果)
vue.js·echars
边境悍匪7 小时前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring
志尊宝9 小时前
Vue3 零基础每日笔记(048):嵌套路由与命名视图——后台管理系统布局雏形
前端·javascript·vue.js·笔记·html5
雪芽蓝域zzs9 小时前
第 10 章:大屏看板自动轮播高亮(ECharts 大屏经典效果)
vue.js·echars
志尊宝10 小时前
Vue3 零基础每日笔记(052):路由常见坑一次排雷——404、刷新丢参数、部署白屏
前端·javascript·vue.js·笔记·html5