在vue入口文件import css与import js文件作用域

为什么引入css样式文件能够作用到全局?而引入js文件就只能在当前模块下产生作用?
main.js

import a from './a.js';
//样式文件
import './index.css'

a.js

export default "hello world"

index.css

.title{
    color:red
}
阅读 1.9k
评论 2019-01-12 提问
    2 个回答
    stone
    • 2.3k

    在 main.js 中引入的 css 都是全局生效的。引入的 js 文件只在 main.js 中生效,是因为 main.js 在webpack中是一个模块,a.js 也是一个模块,在其他地方是访问不到这个 a 的,这就是ES6的模块化,所以如果你想这个 a.js 全局可用,就需要绑定到全局对象上,比如绑定 Vue 上,让这个 a 暴露在全局对象上。

    评论 赞赏
      Lambo
      • 73

      main.js中引入样式全局可用。

      import a from './a.js';

      引入js的话,你需要使用:

      Vue.prototype.$hello = a;
      //这样直接在子组件使用this.$hello就能访问了。
      "hello world"
      评论 赞赏
        撰写回答

        登录后参与交流、获取后续更新提醒