现在需要在同一个页面做操作加载,考虑到router没什么必要,通过v-show来绑定。
左侧是另一个组件leftbar.vue。点击之后通过路由进入另一个页面。点击左侧栏没法刷新。
右侧栏code
<template>
<div class="rightBar">
<p class="rightBar-nav">
<a href="#">帮助中心</a>
<span>></span>
<a href="#">{{ this.$route.query.name }}</a>
</p>
<div class="newsList-con" v-for="item in news" v-show="item.id == cate_id & !vshow" :key="item.id">
<dl class="newsList" v-for="item in item.dataList" :key="item.id">
<dt><a href='javascript:;' @click="showNextPage">{{ item.title }}</a></dt>
<dd>{{ item.txt }}</dd>
</dl>
</div>
<div class="newsList-child" v-show="vshow">
sss
</div>
</div>
</template>
<script>
import axios from 'axios'
export default{
props:["vshow"],
data () {
return {
news: [],
ok: false,
vshow: false,
cate_id: 1
}
},
mounted: function () {
axios.get('static/data/dataBase.json')
.then((res) => {
console.log(res)
this.news = res.data.dataTxt
if (this.$route.query.id) {
this.cate_id = this.$route.query.id
}
})
.catch((err) => {
console.log(err)
})
},
methods: {
showNextPage: function () {
this.vshow = !this.vshow
}
},
watch: {
'$route' (to, from) {
this.cate_id = this.$route.query.id
}
}
}
</script>
使用
v-if
试试