• Vue3 简单使用,调用实时监控鼠标指针x,y坐标


    Vue3 简单使用,调用实时监控鼠标指针x,y坐标

    • 解构出我们要用的到函数
    	const {createApp,reactive,toRefs,onMounted,onUnmounted,computed}= Vue
    	
    
    • 鼠标位置实时监听
      注意点:

      • v3里面数据响应式要通过reactive实现 => reactive({})
      • 声明周期变化 v2 <----> v3
          beforeCreate -> 使用 setup()
          created -> 使用 setup()
          beforeMount -> onBeforeMount
          mounted -> onMounted
          beforeUpdate -> onBeforeUpdate
          updated -> onUpdated
          beforeDestroy -> onBeforeUnmount
          destroyed -> onUnmounted
          errorCaptured -> onErrorCaptured
      
      • ref 、 reactive 、 isRef
      	ref 用于声明基础数据类型,该属性值发生更改,都会发生响应式变化
      	<div id = 'app'>
      		<p @click='add'>{{counter}}</p>
      	</div>
      	setup(){
      		const counter = ref(0);
      		function add(){
      			counter.value++ ;// 用ref 定义的响应式数据,修改的时候必须是 xxx.value形式去更改不然会报错,但是模板里用的时候可以直接用{{xxx}}
      		}
      		return {
      			counter
      		}    		
      	}
      	
      	reactive
      		setup(){
      			const state = reactive({name:'zzz',age:18});
      			return {state}
      		}
      	
      
    	function useMouse(){
    		const state = reactive({x:0,y:0});
    		const update = e=>{
    			state.x = e.pageX;
    			state.y = e.pageY;
    		}
    		onMounted(()=>{
    			window.addEventListener('mousemove',update);
    		})
    		onUnmounted(()=>{
    			window.removeEventListener('mousemove',update);
    		})
    		
    		return toRefs(state);
    	}
    	
    	const myComp = {
    		template:`<div>x : {{x}} y :{{y}}</div>`,
    		setup(){
    			const {x,y} = useMouse();
    			//这里的 x 和 y 都是ref 的 属性值,响应式没有丢失
    			return {x,y}
    		}
    	}
    	createApp(myComp).mount("#app")
    
  • 相关阅读:
    03 Linux下运行Django项目
    02 Linux常用基本命令(二)
    01 Linux常用基本命令(一)
    08 基本数据结构
    07 Deque的应用案例-回文检查
    给select增加placeholder技巧
    易经中人生的六大阶段 :潜、现、惕、跃、飞、亢 你在第几个阶段?
    java 实现傅立叶变换算法 及复数的运算
    java 正则表达式 复习
    关于mysql varchar(N)
  • 原文地址:https://www.cnblogs.com/angfl/p/13865093.html
Copyright © 2020-2023  润新知