【vueuse】useScroll使用的注意事项

<script setup lang="ts">
  import { useScroll } from '@vueuse/core'

  const el = ref<HTMLElement | null>(null)
  const { x, y, isScrolling, arrivedState, directions } = useScroll(el)
</script>
 
<template>
  <div ref="el"></div>
</template>
  • 第四行,会自动获取 ref=el 的元素,作用域必须在全局 ,否则不会自动导出该属性
  • 第五行,如果要响应式修改 scroll 中的这些属性,如:x , y ,必须是在网页渲染之后,可在 onMounted 里或之后修改,如:x.value = 50
<script>
 import { ref, reactive, toRefs, onMounted, getCurrentInstance, toRef } from 'vue';
 import { useScroll } from '@vueuse/core';
 export default {
 setup(props, { emit }) {
   function initState() {
     return {
       currY: 0,
     };
   }
   const { proxy } = getCurrentInstance();
   const state = reactive(initState());
   onMounted(() => {
    setScroll();
   });
   function setScroll() {
    const { x, y, arrivedState } = useScroll(proxy.$refs.refScroll);
    state.currY = y;
   }
   function add() {
    console.log(state.currY);
    state.currY += 100;
   }
   return {
    ...toRefs(state),
    add,
   };
  }
};
</script>
  • 第17行,使用 proxy.$refs.xxx 也必须在元素渲染之后,onMounted 里拿属性值,修改等,不然拿不到元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值