vue-在vue中引用index.html中定义的var全局变量

本文讲述了在Vue项目中遇到的returnCitySN未定义问题,通过理解window对象和Vue全局变量的区别,作者介绍了如何在main.js中将window的returnCitySN变量注入Vue实例,以便在其他组件中使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

最近在vue项目使用http://pv.sohu.com/cityjson?ie=utf-8接口获取客户端用户的ip及地区,出现returnCitySN未定义的错误,经过分析returnCitySN属于window的一个属性变量,而不是Vue中的一个属性变量,而在vue中如果要使用全局变量,需要在main.js中赋予变量给Vue,所有想到的解决办法在main.js中将window的returnCitySN变量赋值给Vue,如:

  • index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>demo</title>
    <% if (htmlWebpackPlugin.options.nodeModules) { %>
      <!-- Add `node_modules/` to global paths so `require` works properly in development -->
      <script>
        require('module').globalPaths.push('<%= htmlWebpackPlugin.options.nodeModules.replace(/\\/g, '\\\\') %>')
      </script>
    <% } %>
	<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
  </head>
  <body>
    <div id="app"></div>
    <!-- Set `__static` path to static files in production -->
    <% if (!process.browser) { %>
      <script>
        if (process.env.NODE_ENV !== 'development') window.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\')
      </script>
    <% } %>

    <!-- webpack builds are automatically injected -->
  </body>
  <style>
	body{
	  margin: 0 0;
	  overflow-y: hidden;
	  overflow-x: hidden;
	}
  </style>
</html>
  • main.js
import Vue from 'vue'
import axios from 'axios'
Vue.prototype.$returnCitySN = window.returnCitySN;
new Vue({
  i18n,
  components: { App },
  router,
  store,
  template: '<App/>'
}).$mount('#app')

总结

Vue就是全局对象,想在其他vue文件中使用变量,只需要设置成Vue中的一个属性变量,通过this对象(vue)获取设置的属性即可。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值