This time I will bring you vue.js routing failure and cannot be used. What are the precautions to solve the problem of vue.js routing failure and failure. The following is a practical case, let's take a look.
I have newly learned the routing in vue.js and added a simple routing example ( from vue-router 2) to the vue demo I wrote before, but after adding the click only The address bar changes, but the content does not change. And some effects written before with jquery also fail. Finally, the reason was found because the same ID was launched twice (the first time was launched when using the vue component before, and the other one was Started during routing)
Attached is part of the code
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- 引入样式 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-default/index.css" rel="external nofollow" > </head> <style> body { margin: 0; padding: 0; } .logo { width: 166.65px; height: 60px; position: absolute; } .el-menu-demo { margin-left: 166.65px; } .tac { width: 500px; } .bar2,.bar3{ display: none; } </style> <body> <p id="top-menu"> <p class="logo"> <img src="baidu.gif" alt=""> </p> <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"> <el-menu-item index="1" class="nav1">基本资料</el-menu-item> <el-menu-item index="2" class="nav2">培养信息</el-menu-item> <el-menu-item index="3" class="nav3">考核相关</el-menu-item> <el-menu-item index="4" class="nav4">清算</el-menu-item> </el-menu> </p> <p id="left-menu"> <el-row class="tac"> <!-- 基本资料--> <el-col :span="8" class="bar1"> <el-menu mode="vertical" default-active="1" class="el-menu-vertical-demo" @select="handleSelect" theme="dark"> <el-menu-item-group title="个人资料"> <!-- 路由链接添加处 --> <router-link to = "/information"><el-menu-item index="1"><i class="el-icon-message"></i>基本信息</el-menu-item></router-link> <el-menu-item index="2"><i class="el-icon-message"></i>修改密码</el-menu-item> </el-menu-item-group> <el-menu-item-group title="会员资料"> <router-link to = "/list"><el-menu-item index="3"><i class="el-icon-message"></i>会员信息</el-menu-item></router-link> </el-menu-item-group> <el-menu-item-group title="小组资料"> <el-menu-item index="4"><i class="el-icon-message"></i>小组信息</el-menu-item> </el-menu-item-group> </el-menu> </el-col> </el-row> <!-- 路由内容显示 --> <p class = "content"> <router-view></router-view> </p> </p> </body> <!-- 先引入 Vue --> <script src="https://unpkg.com/vue/dist/vue.js"></script> <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> <!-- 引入组件库 --> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".nav1").click(function(){ $(".bar1").show().siblings().hide(); }) $(".nav2").click(function(){ $(".bar2").show().siblings().hide(); }) $(".nav3").click(function(){ $(".bar3").show().siblings().hide(); }) }) </script> <script type="text/javascript"> //vue组件部分 var Main = { data() { return { activeIndex: '1' }; }, methods: { handleSelect(key, keyPath) { /*console.log(key, keyPath);*/ } } } //vue路由部分 const Information = {template:'<p>foo</p>'} const List = {template:'<p>list</p>'} const routes = [ {path:'/information',component:Information}, {path:'/list',component:List}] const router = new VueRouter({ routes }) const app = new Vue({ router }).$mount('#left-menu') //路由 启动应用 var Ctor = Vue.extend(Main) new Ctor().$mount('#top-menu') //主要就是下面这条语句多余 这是写组件时启动应用所用的语句 //new Ctor().$mount('#left-menu') </script> </html>
I believe you have mastered the method after reading the case in this article. Please pay attention for more exciting things. Other related articles on php Chinese website!
Recommended reading:
Detailed explanation of the use of JS prototype and prototype chain
Detailed explanation of the use of Angular CLI to generate Angular 5 projects
The above is the detailed content of vue.js routing is invalid and cannot be used. For more information, please follow other related articles on the PHP Chinese website!