【问题标题】:Change img src based on route根据路由更改 img src
【发布时间】:2019-07-17 08:46:21
【问题描述】:

我有一个左侧带有徽标图像的标题组件,就像这样-

<router-link to="/">
    <img id="top-logo" src="@/assets/images/logo/logo-ft-on-tp.svg">
</router-link>

现在,我希望此徽标仅出现在主页上,并在所有其他页面上加载不同的图像。如何在 VueJS 中实现这一点?

【问题讨论】:

    标签: vue.js vue-router


    【解决方案1】:

    您可以使用this.$router.path 破解您当前的路径:

    const Home = {
      template: '<div>Home</div>'
    }
    const Foo = {
      template: '<div>Foo</div>'
    }
    
    const router = new VueRouter({
      mode: 'history',
      routes: [{
          path: '/',
          component: Home
        },
        {
          path: '/foo',
          component: Foo
        }
      ]
    })
    
    new Vue({
      router,
      el: '#app',
      computed: {
        checkIfHome() {
          return (this.$route.path === '/') ? true : false
        }
      }
    })
    <script src="https://npmcdn.com/vue/dist/vue.js"></script>
    <script src="https://npmcdn.com/vue-router/dist/vue-router.js"></script>
    
    <div id="app">
      <div v-if="checkIfHome">home image</div>
      <div v-else>other image</div>
    
      <router-link to="/">/home</router-link>
      <router-link to="/foo">/foo</router-link>
    
      <router-view></router-view>
    </div>

    Check the fiddle for a working example

    【讨论】:

    • 这是完美的,就像一个魅力 - 感谢您的快速回复!
    猜你喜欢
    • 2014-11-04
    • 1970-01-01
    • 2021-05-15
    • 2013-05-23
    • 1970-01-01
    • 2017-01-25
    • 2018-09-15
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多