首页 > web前端 > js教程 > 解决使用vue.js路由后失效的问题

解决使用vue.js路由后失效的问题

亚连
发布: 2018-05-29 15:51:31
原创
2169 人浏览过

下面我就为大家分享一篇解决使用vue.js路由后失效的问题,具有很好的参考价值,希望对大家有所帮助。

新学了vue.js中的路由 在之前写的vue的demo上加上了简单的路由例子(来自vue-router 2),但是加上点击后只有地址栏变化,内容并不变.且之前用jquery写的一些效果也失效了.最后找到原因是因为同一个id被启动了两次(第一次是之前使用vue组件时启动的,另外一个是路由时启动的)

附上部分代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

<!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: &#39;1&#39;

 };

 },

 methods: {

 handleSelect(key, keyPath) {

  /*console.log(key, keyPath);*/

 }

 }

 }

//vue路由部分

 const Information = {template:&#39;<p>foo</p>&#39;}

 const List = {template:&#39;<p>list</p>&#39;}

 const routes = [

 {path:&#39;/information&#39;,component:Information},

 {path:&#39;/list&#39;,component:List}]

 const router = new VueRouter({

 routes

 })

 const app = new Vue({

 router

 }).$mount(&#39;#left-menu&#39;) //路由 启动应用

 var Ctor = Vue.extend(Main)

 new Ctor().$mount(&#39;#top-menu&#39;)

 //主要就是下面这条语句多余 这是写组件时启动应用所用的语句

 //new Ctor().$mount(&#39;#left-menu&#39;)

 </script>

</html>

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

spirngmvc js传递复杂json参数到controller的实例

Vue.js 表单控件操作小结

js传递数组参数到后台controller的方法

以上是解决使用vue.js路由后失效的问题的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
javascript - vue.js与html页面之间的跳转
来自于 1970-01-01 08:00:00
0
0
0
vue.js - ViewModel和Controller有什么区别?
来自于 1970-01-01 08:00:00
0
0
0
使用Vue.js Web组件与Pinia
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板