Vuejs2 路由器路径改变时的v-if

Vuejs2 路由器路径改变时的v-if,vuejs2,Vuejs2,请任何人帮忙 是否可以在route pat更改时显示一些DOM元素。 代码 但是这个组件也是子用户Thx我认为您的问题可能是您使用了相同的用户组件来呈现/User和/User/config路由。如果这是设置,vue router不会重新加载或重新渲染组件。要使视图对路径中的更改做出反应,一个选项是添加更改的参数。这样,路由器将处理更改(请参阅上的vue路由器文档)。如果您不想更改路线以添加此参数,一个技巧是将更改的:key添加到: 现场演示 我已经准备好了一个完整的工作现场。它应该可以正常工作。

请任何人帮忙

是否可以在route pat更改时显示一些DOM元素。 代码


但是这个组件也是子用户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>