组件用:change 实现监听效果是什么原理, vue 里面不行 uniapp 里可以

56 天前
 6c9fd
<template>
	<view class="w100" :change:bb="auto" :bb="bb">测试</view>
</template>

<script>
export default {
    data() {
        return {			
        	bb:1,
        }
    },
    methods: {
			auto(newValue, oldValue, ownerInstance, instance) {
				  console.log(newValue, oldValue, ownerInstance, instance)
				  setTimeout(() => {console.log(this.bb);this.bb = this.bb + 1;}, 2000);  
			}
		}
</script>

这种用法是立即执行的 watch 监听,可以检测 bb 的值的变化,实测只能监测元素上绑定的值如 bb ,uniapp 文档里也没找到有这种用法的说明,有大佬知道吗

1045 次点击
所在节点    Vue.js
5 条回复
jones2000
56 天前
ResizeObserver 直接用这个原生,就可以监听 dom 的变动。
344457769
56 天前
6c9fd
56 天前
@jones2000 嗯,我只是看到别人代码里这么写有点好奇可以这么用
6c9fd
56 天前
@344457769 原来微信小程序里也有,好久没写忘了,不过 uniapp 中不写在 renderjs 里也可以这么用
344457769
56 天前
@6c9fd #4 官方文档说了,“在 H5 端逻辑层和视图层实际运行在同一个环境中,相当于使用 mixin 方式,可以直接访问逻辑层数据。”

也就是说如果你是只开发 H5 用到了的话,script 标签带不带 lang="renderjs"不影响 renderjs 的特性的。但是如果用了 renderjs 的特性但是没有带 lang="renderjs"的话是不够规范的,会给阅读你的代码的人造成困扰。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1075922

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX