vuejs单页面怎么返回前一页?

vuejs这个页面输入input出现『取消』按钮,只要点击这个按钮即返回前一页,这个怎么实现?
图片描述

<template>
  <div>
    <mt-search v-model="value" :result="filterResult" cancel-text="取消" placeholder="搜索">
    </mt-search>
  </div>
</template>

<script>
export default {
  name: 'search',
  data () {
    return {
      value: '',
      defaultResult: [
        'Apple',
        'Banana',
        'Orange',
        'Durian',
        'Lemon',
        'Peach',
        'Cherry',
        'Berry',
        'Core',
        'Fig',
        'Haw',
        'Melon',
        'Plum',
        'Pear',
        'Peanut',
        'Other'
      ]
    }
  },
  computed: {
    filterResult () {
      return this.defaultResult.filter(value => new RegExp(this.value, 'i').test(value))
    }
  }
}
</script>

<style lang="stylus">
  .mint-searchbar-cancel
    color: #757575

  .mint-searchbar-core
    padding-left: .6rem
</style>
阅读 20.4k
3 个回答

如果有用到 vue-router 做前端路由的话,可以使用 $router.go(-1)。

否则从数据驱动的角度考虑,设置一个数据,用该数据控制当前组件和上一组件的显示隐藏即可。

刚看了一下 mintui 的源码,取消对应的模板是:

<a
        class="mint-searchbar-cancel"
        @click="visible = false, currentValue = ''"
        v-show="visible"
        v-text="cancelText"></a>

好像没法添加事件。

新手上路,请多包涵

可以把这个UI默认的取消键删掉,旁边增加一个按钮,添加一个click点击事件,值为window.history.back(),或者是window.history.go(-1);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题