You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何VueUse.useMouse()值更新但页面不渲染?

问题:VueUse useMouse() 返回的坐标页面不更新,仅控制台输出变化

你遇到的情况是:使用VueUse的useMouse()获取鼠标坐标时,控制台能正确打印随鼠标移动变化的x、y值,但页面<span>标签内的x、y始终显示0,无法同步更新。

原因分析

问题出在你使用的Vue生产环境版本(vue.esm-browser.prod.js)上。生产模式下Vue会进行编译优化,导致模板没有自动识别并解包VueUse返回的Ref对象。虽然Ref的value属性在后台正常更新,但模板无法追踪到响应式变化,因此始终显示初始值0。

解决方案

方案1:模板中手动访问Ref的.value属性

直接在模板里修改为读取Ref的value属性,强制获取最新值:

<div id="app01">
    <span>mouse : {{x.value}} | {{y.value}}</span>
</div>

方案2:改用Vue开发环境版本

如果处于开发阶段,可将importmap中的Vue替换为开发版CDN链接,开发版不会进行激进优化,会自动解包Ref对象:

<script type="importmap">
{ "imports" : {
    "vue"               : "https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.esm-browser.js",
    "@vueuse/core"      : "https://cdn.jsdelivr.net/npm/@vueuse/core@10.2.1/+esm"
} }
</script>

验证说明

你控制台能打印出变化的x.value和y.value,说明useMouse()本身功能正常,问题仅存在于模板对Ref的识别环节,上述方案均可解决。

内容的提问来源于stack exchange,提问作者XJ.Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:05:10