如正文代码显示,为什么先创建组件,再创建路由呢,其次才是创建 Vue 实例呢?

多谢您的回答,采纳后有赞赏 10 元。

<body>
<div id="app">

<!--<a href="#/news">新闻资讯</a>
<a href="#/share">图片分享</a>-->

<router-link to="/news/15">新闻资讯</router-link>
<router-link to="/share">图片分享</router-link>
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>

</div>

<script>

//组件  新闻资讯
var news = Vue.component('my-news', {
  data() {
    return {
      id: -1
    }
  },
  //当组件创建完毕之后
 

当组件创建完毕之后,为什么路由跳到这里来了,并且能够获取到路由参数?

  created() {
    //获取路由参数
    this.id = this.$route.params.id
  },
  template: '<p>我是新闻资讯列表 {{id}}</p>'
})

//组件  图片分享
var share = Vue.component('my-share', {
  template: '<p>我是图片分享的列表</p>'
})

//创建路由
var router = new VueRouter({
  routes: [
    {name: 'news', path: '/news/:id', component: news},
    {name: 'share', path: '/share', component: share}
  ]
})

var vm = new Vue({
  el: '#app',
  //使用路由对象
  router: router
})

</script>
</body>

阅读 1.8k
1 个回答

为什么先创建组件?
路由就是用来控制每个页面显示哪个组件,所以必须先有组件它才能控制。

为什么创建路由,其次才是创建 Vue 实例?
这里是用一个 Vue 实例作为主入口,通过 router: router 注入路由,从而让整个应用都有路由功能。这个过程是 vue-router 在背后搞定的,它会将 $router$route 注入到每个子组件中。

创建路由就像填电话本,告诉 vue-router 遇到什么样的路径要跳到哪个组件。

为什么路由跳到这里来了,并且能够获取到路由参数?
<router-link to="/news/15">新闻资讯</router-link> 会生成一个 a 标签,点击之后 vue-router 会帮你跳转到对应组件,你在创建路由的时候用了动态匹配 '/news/:id', 那么这个 15 就可以在子组件中用 this.$route.params.id 获取到。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题