Vuejs2 路由器路径改变时的v-if
请任何人帮忙 是否可以在route pat更改时显示一些DOM元素。 代码Vuejs2 路由器路径改变时的v-if,vuejs2,Vuejs2,请任何人帮忙 是否可以在route pat更改时显示一些DOM元素。 代码 但是这个组件也是子用户Thx我认为您的问题可能是您使用了相同的用户组件来呈现/User和/User/config路由。如果这是设置,vue router不会重新加载或重新渲染组件。要使视图对路径中的更改做出反应,一个选项是添加更改的参数。这样,路由器将处理更改(请参阅上的vue路由器文档)。如果您不想更改路线以添加此参数,一个技巧是将更改的:key添加到: 现场演示 我已经准备好了一个完整的工作现场。它应该可以正常工作。
但是这个组件也是子用户Thx我认为您的问题可能是您使用了相同的
用户
组件来呈现/User
和/User/config
路由。如果这是设置,vue router
不会重新加载或重新渲染组件。要使视图对路径中的更改做出反应,一个选项是添加更改的参数。这样,路由器将处理更改(请参阅上的vue路由器文档)。如果您不想更改路线以添加此参数,一个技巧是将更改的:key
添加到
:
现场演示
我已经准备好了一个完整的工作现场。它应该可以正常工作。创建了一个“签出”。@Jag添加所有代码,此组件由用户组件呈现,因此我需要将事件发送到那里?如果我在某个路由路径上,我想隐藏按钮?我已编辑此问题,现在可能会有更多问题understandable@marco-pantaleoni如何有条件地将重新渲染限制为路由(或动态路由)所以它不适用于所有路线并影响性能,正如您所指出的?您在这里的回答对解决我在这里发布的问题非常有帮助:我是否可以将整个生命周期的重新渲染限制为特定Vue组件/视图模板中的更改?
<div>
<router-link v-if="$router.history.current['path'] !=='user/config'"
class="btn btn-fill
btn-default"
tag="button"
to="/user/config">Change Config
</router-link>
</div>
<template>
<card class="card-user">
<img slot="image" src="https://ununsplash.imgix.net/photo-1431578500526-4d9613015464?fit=crop&fm=jpg&h=300&q=75&w=400" alt="..."/>
<router-link class="btn btn-fill btn-default" tag="button" to="/user/password-change">Change Passsword</router-link>
</div>
<div>
<router-link class="btn btn-fill btn-default" tag="button" to="/user/password-change">Change Email</router-link>
</div>
<div>
<router-link v-if="v-if="$router.history.current['path'] !== '/user/config'"" class="btn btn-fill btn-default" tag="button" to="/user/config">Change Config</router-link>
</div>
</div>
</card>
</template>
<script>
import Card from 'src/components/UIComponents/Cards/Card.vue'
export default {
components: {
Card
},
data () {
return {
}
}
}
</script>
<router-view :key="$route.fullPath"></router-view>
<template>
...
<router-link v-if="isNotInConfig()" class="btn btn-fill btn-default" tag="button" to="/user/config">Change Config</router-link>
...
</template>
<script>
export default {
...
methods: {
isNotInConfig() {
return this.$router.history.current["path"] !== "/user/config";
}
},
...
};
<script>