代码之家  ›  专栏  ›  技术社区  ›  Nate Beers

使用导入的Javascript函数ES6访问主文件中的全局变量

  •  3
  • Nate Beers  · 技术社区  · 6 年前

    我正在使用 Vue.js 但是简单地说 JS 文件而不是 vue app.js 像这样:

    import autoPosts from './components/autoPosts.js';
    

    const apiRoot    = location.origin + '/wp-json/wp/v2/';
    const acfApiRoot = location.origin + '/wp-json/acf/v3/';
    
    import autoPosts from './components/autoPosts.js';
    

    它不读 apiRoot acfApiRoot 在这个组件中,不管我在变量之前还是之后包含它。

    唯一可行的方法是在我的组件文件中声明变量 autoPosts.js

    3 回复  |  直到 6 年前
        1
  •  14
  •   Bergi    6 年前

    app.js 主模块并不意味着其中声明的变量变为全局变量。但无论如何,您不应该使用全局变量。相反,创建另一个模块

    // config.js
    export const apiRoot    = location.origin + '/wp-json/wp/v2/';
    export const acfApiRoot = location.origin + '/wp-json/acf/v3/';
    

    // components/autoPosts.js
    import { apiRoot, acfApiRoot } from '/config.js';
    …
    
        2
  •  6
  •   Georgios Dimitriadis    6 年前

    只是使用

    const apiRoot = 'whatever';
    

    要使用全局变量,请将其添加到窗口;

    window.apiRoot = 'whatever';
    

    并且它可以从任何其他类中通过简单的变量名进行访问

    console.log(apiRoot); // outputs 'whatever'
    
        3
  •  2
  •   RyanA91    6 年前

    它不能用窗户吗?

    window.apiRoot = location.origin + '/wp-json/wp/v2/';