vue.js:634 [Vue warn]: Unknown custom element: <router-link> - did you register the component correc
今天第一次学习VueRouter就出了一个坑让我弄了两个小时报错如下代码如下<div id="app"><!--router-link来指定跳转的路径--><span><router-link to="/login">登录</router-link></span><span><router-link to="
·
今天第一次学习VueRouter就出了一个坑让我弄了两个小时
报错如下
代码如下
<div id="app">
<!--router-link来指定跳转的路径-->
<span><router-link to="/login">登录</router-link></span>
<span><router-link to="/register">注册</router-link></span>
<hr/>
<div>
<!--vue-router的锚点-->
<router-view></router-view>
</div>
</div>
<!--引入vue-router对象-->
<script src="../node_modules/vue-router/dist/vue-router.js"></script>
<script src="../node_modules/vue/dist/vue.js"></script>
<script src="user/login.js"></script>
<script src="user/register.js"></script>
<script type="text/javascript">
// 创建VueRouter对象
const router = new VueRouter({
routes:[ // 编写路由规则
{
path:"/login", // 请求路径
component:loginForm // 组件名称
},
{path:"/register",component:registerForm},
]
})
var vm = new Vue({
el: "#app",
components: {
loginForm,
registerForm
},
router // 引用上面定义的router对象
})
</script>
到网上查,到书上找,原来是没有手动调用Vue.use(VueRouter)。以前习惯了在文件头部直接引入vue.js和vue-router.js,这种方式下,在vue-router内部会检测window.Vue对象是否存在,如果存在就会自动调用Vue.use()方法,否则需要手动调用Vue.use(VueRouter)来确保路由插件注册到Vue中。在支持AMD环境中,Vue对象并不会暴露到全局window对象中,而是会通过define()形式输出和引入,因此需要手动注册。
<script type="text/javascript">
// 创建VueRouter对象
const router = new VueRouter({
routes:[ // 编写路由规则
{
path:"/login", // 请求路径
component:loginForm // 组件名称
},
{path:"/register",component:registerForm},
]
})
**Vue.use(VueRouter);**
var vm = new Vue({
el: "#app",
components: {
loginForm,
registerForm
},
router // 引用上面定义的router对象
})
</script>
加粗内容加上即可
更多推荐
已为社区贡献1条内容
所有评论(0)