在 webpack 下 main.js 中定义的变量为什么在组件中访问不到?

在 webpack 下 main.js 中定义的变量为什么在组件中访问不到?,第1张

在 webpack 下 main.js 中定义的变量为什么在组件中访问不到?,第2张

如题,我用的是 vue2.0 + vue-router2.0 + vue-loader + webpack ,在 main.js 中定义了 router 变量,但是在的 vue 文件中访问 router 变量却提示没有定义,难道 webpack 下每个 js 文件中的变量都是限定在特定文件内的嘛?

main.js 片段如下:

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './views/app.vue'

Vue.use(VueRouter)
const router = new VueRouter({
    routes: [{
        name: 'index',
        path: '/',
        component: require('./views/index.vue')
    }]
})

new Vue({
  el: '#app',
  router: router,
  render: h => h(App)
})

app.vue 片段如下:

<template>
  <router-view></router-view>
</template>

index.vue 片段如下

<template>
  <div id="page-index"></div>
</template>

<script>
export default {
    data() {},

   mounted() {
     alert(router)
   }
}
</script>

访问 "/" 路由时提示 router 未定义,这是为什么?昨天刚学 webpack ,看到一脸懵逼 T.T...

----------------------- 以下是精选回复-----------------------

答:这跟 Webpack 无关
变量的作用域没你想的那么大
模块无法访问父级作用域
除非你放在 window 对象上
答:用 this.$router

https://router.vuejs.org/zh-cn/api/component-injections.html
答:1 用了 router ,就不需要 render ( app ),参考:
http://router.vuejs.org/zh-cn/essentials/getting-started.html

2 组件内(你的 index.vue )使用 this.$router 访问 router 对象,参考:
http://router.vuejs.org/zh-cn/api/route-object.html

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 在 webpack 下 main.js 中定义的变量为什么在组件中访问不到?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情