【问题标题】:How do I style an active route that has query params?如何设置具有查询参数的活动路由?
【发布时间】:2018-04-12 08:51:07
【问题描述】:

.router-link-exact-active 类在通过this.$router.push(...) 导航到该路由时不会添加到活动路由。

例如:

// ...
this.$router.push('/?foo=bar');

不会导致<router-link :to="'/'">Home</router-link> 被分配.router-link-exact-active 类。

  1. 这是错误还是预期行为?
  2. 在这种情况下应该如何设置活动链接的样式?

附言

这是一个说明问题的小提琴:https://jsfiddle.net/alexlomm/dumeejyy/7/

【问题讨论】:

    标签: vue.js vuejs2 vue-router


    【解决方案1】:

    可能你应该单独使用paramsquery 并使用queryparams 值作为模板数据,如下例所示

    <router-link :to="{ path: '/', query: url_query }">home</router-link>
    

    Check in docs

    <script type="text/javascript" src="https://unpkg.com/vue@2.5.16/dist/vue.js"></script>
    <script type="text/javascript" src="https://unpkg.com/vue-router@2.7.0/dist/vue-router.js"></script>
    <div id="app"></div>
    
    
    <script type="text/javascript">
    	Vue.use(VueRouter)
    
    const Home = {template: ''}
    
    const router = new VueRouter({
      mode: 'history',
      routes: [
        {path: '/', name: 'home', component: Home},
      ]
    })
    
    new Vue({
      router,
      template: `
        <div id="app">
          <p>Current path: {{ $route.fullPath }}</p>
          <ul>
            <li><router-link :to="{ path: '/', query: url_query }">home</router-link></li>
          </ul>
        </div>
      `,
      data:{
      	url_query:{}
      },
      mounted() {
      	this.url_query = { foo: 'bar' };
      }
    }).$mount('#app')
    
    </script>

    In your Fiddle

    【讨论】:

    • 已经试过了,没用。这两种方法基本相同
    • 重点是,如果您使用router-link 导航,它会起作用,但是当您使用this.$router.push 导航时,它就不起作用。
    • @AlexanderLomia :是的,因为模板的编译是之前完成的,所以我建议是让它工作的好方法。或者您决定将router-link 放在this.$router.push 之后。在你的情况下router-linkthis.$router.push 之后永远不会改变......我让你感到困惑还是消除了你的困惑?
    • 抱歉,没听懂你的意思
    • 我的意思是你不能在这里更新 url &lt;router-link :to="'/'"&gt;Home&lt;/router-link&gt;,直到它没有被绑定。就像我在示例中所做的那样。
    猜你喜欢
    • 2020-01-25
    • 2017-12-15
    • 2020-08-15
    • 2019-12-05
    • 1970-01-01
    • 2017-01-16
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多