为什么我回到顶部又刷新了一下呢

来源:7-1 返回顶部组件

上心4409406

2020-04-30 19:00:09

backtop的index

<template>

  <transition name="mine-backtop">

    <a

      href=""

      class="mine-backtop"

      v-show="visible"

      @click="backToTop" >

      <i class="iconfont icon-huo"></i>

    </a>

  </transition>

</template>


<script>

export default {

  name: 'MeBacktop',

  props: {

    visible: {

      type: Boolean,

      default: false

    }

  },

  methods: {

    backToTop () {

      this.$emit('backtop')

    }

  }

}

</script>


<style lang="scss" scoped>

  @import "~assets/scss/mixins";


  .mine-backtop {

    overflow: hidden;

    @include flex-center();

    width: 45px;

    height: 45px;

    background-color: rgba(0, 0, 0, 0.6);

    border: none;

    border-radius: 50%;


    .iconfont {

      color: #fff;

      font-size: 38px;

    }

  }


  .mine-backtop {

    &-enter-active,

    &-leave-active {

      transition: opacity 0.4s;

    }


    &-enter,

    &-leave-to {

      opacity: 0;

    }

  }

</style>


home的index

<template>

    <div class="home">

        <header class="g-header-container">

            <home-header/>

        </header>

        <me-scroll

          :data="recommends"

          pullDown

          pullUp

          @pull-down="pullToRefresh"

          @pull-up="pullToLoadMore"

          @scroll-end="scrollEnd"

          ref="scroll"

        >

            <home-slider ref="slider"/>

            <home-nav/>

            <home-recommend @loaded="getRecommends" ref="recommend"/>

        </me-scroll>

        <div class="g-backtop-container">

          <me-backtop :visible="isBacktopVisible" @backtop="backToTop"/>

        </div>

        <router-view></router-view>

    </div>

</template>


<script>

import HomeHeader from './header'

import HomeSlider from './slider'

import MeScroll from 'base/scroll'

import HomeNav from './nav'

import HomeRecommend from './recommend'

import MeBacktop from 'base/backtop'


export default {

  name: 'Home',

  components: {

    HomeHeader,

    HomeSlider,

    MeScroll,

    HomeNav,

    HomeRecommend,

    MeBacktop

  },

  data () {

    return {

      recommends: [],

      isBacktopVisible: false

    }

  },

  methods: {

    updateScroll () {

    },

    getRecommends (recommends) {

      this.recommends = recommends

    },

    pullToRefresh (end) {

      this.$refs.slider.update().then(end)

      // setTimeout(() => {

      //     console.log('刷新')

      //     end()

      // }, 1000)

    },

    pullToLoadMore (end) {

      this.$refs.recommend.update().then(end)

      // setTimeout(() => {

      //     console.log('上拉的刷新')

      //     end()

      // }, 1000)

    },

    scrollEnd (translate, scroll) {

      this.isBacktopVisible = translate < 0 && -translate > scroll.height

    },

    backToTop () {

      this.$refs.scroll && this.$refs.scroll.scrollToTop()

    }

  }

}

</script>


<style lang="scss" scoped>

    @import '~assets/scss/mixins';


    .home{

        overflow: hidden;

        width: 100%;

        height: 100%;

        background-color: $bgc-theme;

    }

</style>



写回答

1回答

好帮手慕糖

2020-05-01

同学你好,backtop下的index.vue中。

 因为a链接的href属性值为空的时候, 点击链接默认会刷新页面。

建议: 可以a链接的href属性添加“#”值,阻止默认刷新页面

http://img.mukewang.com/climg/5eab7e9f09a5a10b09320465.jpg

如果帮助到了你, 欢迎采纳!祝学习愉快~~

0

0 学习 · 10739 问题

查看课程