美文网首页
vue 入口文件main.js版本升级后的写法

vue 入口文件main.js版本升级后的写法

作者: 焦迈奇 | 来源:发表于2018-09-22 21:59 被阅读0次

    首先让我们先看一下之前的版本是怎么写的

    Vue.use(VueRouter)
    let app = Vue.extend(App)
    let router = new VueRouter()
    router.map({
        '/goods': {
            component: goods
        },
        '/ratings': {
            component: ratings
        },
        '/seller': {
            component: seller
        }
    })
    
    router.start(app, '#app')//挂载点
    router.go('/goods')//默认进入goods
    

    从vue Router0.7.×的迁移

    1. router.map({})
    let routes=['/goods': {
            component: goods
        },
        '/ratings': {
            component: ratings
        },
        '/seller': {
            component: seller
        }
    ];
    let router = new VueRouter({
    routes
    });
    或者
    var router = new VueRouter({
      routes: [{
        path: '/goods', component: goods
      },
      {
        path: '/ratings', component: ratings
      },
      {
        path: '/seller', component: seller
      }];
    });
    
    1. router.start(app,'#app');
    /* eslint-disable no-new */
    new Vue({
    el: '#app',
    router,
    render: h => h(App)
    });
    

    所以新的版本写法为

    let router = new VueRouter({
      routes: [{
        path: '/goods', component: goods
      },
      {
        path: '/ratings', component: ratings
      },
      {
        path: '/seller', component: seller
      }
      ]
    });
    /* eslint-disable no-new */
    new Vue({
      el: '#app',
      router,
      render: h => h(App)
    });
    

    在这个过程中遇到了一个问题routes定义在router外部和内部有啥区别的?routes定义在外部,然后在router内引入routes会出现路由请求错误

    let routes = [
      {path: '/goods', components: goods},
      {path: '/ratings', components: ratings},
      {path: '/seller', components: seller}
    ];
    let router = new VueRouter({
      routes
    });
    /* eslint-disable no-new */
    new Vue({
      el: '#app',
      router,
      render: h => h(App)
    });
    
    image.png

    error:[vue-router] Failed to resolve async component render: TypeError: _vm is undefined
    大概意思是不能渲染异步的组件

    如果您有更好的理解或者想法请评论

    相关文章

      网友评论

          本文标题:vue 入口文件main.js版本升级后的写法

          本文链接:https://www.haomeiwen.com/subject/owotoftx.html