ref和reactive组合式API应用

1.鼠标移动事件

        指定move函数为事件对应方法 在函数中华修改坐标

        在setup返回数据,模板中使用

2.累加功能

        定义一个简单数据类型的响应式数据

        定义一个修改数字的方法

        

<template>
  <div>
    <div>x:{{ x }}</div>
    <div>y:{{ y }}</div>
    <button @click="add">累加1</button>
    <div>{{ count }}</div>
  </div>
</template>

<script>
import { onMounted, onUnmounted, reactive, ref, toRef, toRefs } from 'vue'
// 方法
const useMouse = () => {
  const mouse = reactive({
    x: 0,
    y: 0
  })
  // 1.3修改响应式数据
  const move = (e) => {

    mouse.x = e.pageX
    mouse.y = e.pageY
  }
  // 12等dom渲染完毕去监听
  onMounted(() => {
    document.addEventListener('mousemove', move)
  })
  // 1.4组件消耗,删除事件
  onUnmounted(() => {
    document.removeEventListener('mousemove', move)
  })
  return mouse
}
export default {
  name: 'App',
  setup () {
    const mouse = useMouse()
    //  1.记录鼠标坐标
    // 1.1申明一个响应式数据
    // const mouse = reactive({
    //   x: 0,
    //   y: 0
    // })
    // // 1.3修改响应式数据
    // const move = (e) => {

    //   mouse.x = e.pageX
    //   mouse.y = e.pageY
    // }
    // // 12等dom渲染完毕去监听
    // onMounted(() => {
    //   document.addEventListener('mousemove', move)
    // })
    // // 1.4组件消耗,删除事件
    // onUnmounted(() => {
    //   document.removeEventListener('mousemove', move)
    // })

    // 2.数字累加
    const count = ref(0)
    const add = () => {
      count.value++
    }


    return { ...toRefs(mouse), count, add }
  }
}
</script>

<style>
</style>

在setup中返回数据和函数,在模板中使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值