Vueuse组件库中配合vue3的组合API的一些好用的方法

安装

npm i @vueuse/core@5.3.0

(1)useIntersectionObserver 来实现监听进入可视区域行为、

使用方法:

// const {stop} = useIntersectionObserver(target, fn, options)

// 1、参数一target表示被监听的DOM元素

// 2、参数二是回调函数,用于通知监听的动作(回调函数的第一个形参isIntersecting表示被监听的元素已经进入了可视区)

// 3、表示配置选项

// stop 是停止观察是否进入或移出可视区域的行为

const { stop } = useIntersectionObserver(

// target 是观察的目标dom容器,必须是dom容器,而且是vue3.0方式绑定的dom对象

target,

// isIntersecting 是否进入可视区域,true是进入 false是移出

// observerElement 被观察的dom

([{ isIntersecting }], observerElement) => {

// 在此处可根据isIntersecting来判断,然后做业务

},

)

 (2)useVModel:实现双向绑定

import { useVModel } from '@vueuse/core'

export default {
  name: 'Checkbox',
  props: {
    modelValue: {
      type: Boolean,
      default: false
    }
  },

  //  使用useVModel
  setup(props, { emit }) {
    const checked = useVModel(props, 'modelValue', emit)
  
    return { checked }
  }
}

(3)useMouseInElement方法获取基于元素的偏移量

<template>
  <div ref="target">
    <h1>Hello world</h1>
  </div>
</template>

<script>
import { ref } from 'vue'
import { useMouseInElement } from '@vueuse/core'

export default {
  setup() {
    const target = ref(null)

    const { elementX, elementY, isOutside } = useMouseInElement(target)

    return {elementX, elementY, isOutside }
  }
}
</script>




总结:方法的参数target表示被监听的DOM对象;返回值elementX, elementY表示被监听的DOM的左上角的位置信息left和top;isOutside表示是否在DOM的范围内,true表示在范围之外。false表示范围内。

可以获取的数据

x: Ref<number>
  y: Ref<number>
  sourceType: Ref<MouseSourceType>
  elementX: Ref<number>
  elementY: Ref<number>
  elementPositionX: Ref<number>
  elementPositionY: Ref<number>
  elementHeight: Ref<number>
  elementWidth: Ref<number>
  isOutside: Ref<boolean>

(4)onClickOutside方法获取点击的外的区域

<template>
  <div ref="target">
    Hello world
  </div>
  <div>
    Outside element
  </div>
</template>

<script>
import { ref } from 'vue'
import { onClickOutside } from '@vueuse/core'

export default {
  setup() {
    const target = ref(null)

    onClickOutside(target, (event) => console.log(event))

    return { target }
  }
}
</script>

(5)useWindowScroll()方法可获取页面股滚动的距离

import { useWindowScroll } from '@vueuse/core'

const { x, y } = useWindowScroll()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值