问题:第一次加载我的项目的时候是能够失常显示吸顶成果的,然而从新刷新页面的时候就没有了

 created() {    this.getDestruction()      this.watchScroll()      window.addEventListener("scroll", this.watchScroll);  },  async mounted() {    await this.getMarket();    // console.log('this.turnover',this.burn)    this.drawLine();    // 事件监听滚动条  },   destroyed() {    // 移除事件监听    window.removeEventListener("scroll", this.watchScroll);    window.removeEventListener("scroll", this.handleClick);  },  methods: {    watchScroll() {      // 滚动的间隔      var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;      // 容器的高度      var offsetTop = document.querySelector("#headtitle_bg").offsetHeight;      //  滚动的间隔如果大于了元素到顶部的间隔时,实现吸顶成果      if (scrollTop > offsetTop) {        this.navBarFixed = true;      } else {        this.navBarFixed = false;      }    },  }

吸顶之前

吸顶成果隐没

起因:获取不到#headtitle_bg节点
解决办法:应用nextTick()办法,是将回调函数提早在下一次dom更新数据后调用,简略的了解是:当数据更新了,在dom中渲染后,主动执行该函数,Vue.nextTick()回调函数中的执行的应该是会对DOM进行操作。

批改后的代码

created() {    // console.log(this.$refs.To_Repurchase_VNC)    // this.getMarket()    this.getDestruction()    this.$nextTick(() => {      this.watchScroll()      window.addEventListener("scroll", this.watchScroll);    })  },  async mounted() {    // console.log(this.$refs.To_Repurchase_VNC)    await this.getMarket();    // console.log('this.turnover',this.burn)    this.drawLine();    // 事件监听滚动条  },   destroyed() {    // 移除事件监听    window.removeEventListener("scroll", this.watchScroll);    window.removeEventListener("scroll", this.handleClick);  },  methods: {    watchScroll() {      // 滚动的间隔      var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;      // 容器的高度      var offsetTop = document.querySelector("#headtitle_bg").offsetHeight;      //  滚动的间隔如果大于了元素到顶部的间隔时,实现吸顶成果      if (scrollTop > offsetTop) {        this.navBarFixed = true;      } else {        this.navBarFixed = false;      }    },}