Vue 3-数字0增加(++)在模板中不是1而是101,为什么?

g-wei xia
Vue.createApp({
  data() {
    return {
      counter: 0
    }
  },
  template: '<div>{{counter++}}</div>'
}).mount('#root')

最后,此代码在页面上显示101。有人知道这个细节吗?

米哈尔·莱维(MichalLevý)
  1. 原因你counter变量被渲染为101,而不是1就是因为你有你的模板副作用。当模板渲染时counter,Vue会增加,Vue注册更改并再次触发渲染...这只是一个无限循环

  2. 这个无限循环不是那么无限,而是在101次迭代后停止的原因在于Vue在内部检查这种情况并抛出错误(您应该在浏览器开发工具控制台中看到)。引发错误的条件是number_of_iterations > RECURSION_LIMIT在哪里RECURSION_LIMIT设置为100

错误:

超过了最大的递归更新。这意味着您会产生反应性效果,该效果会改变其自身的依赖性,从而递归地触发自身。可能的来源包括组件模板,渲染功能,更新的挂钩或观察者来源功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Vue 3:在Vue 3模板中引用时为什么dom ref值未定义

为什么从列表[-1]而不是列表[0]开始计算此列表中的元素?(Python 3)

如何在Sublime Text 3中增加或减少所选数字

为什么Promise的输出不是“ 1 2 3”而是“ 1 3 2”?

Vue 排序数组后跟索引( 0, 1, 2, 3 ... )

为什么 DeepLearning4J CNN 在 INDArray 输出中返回的不是概率而是只有 0 和 1

为什么是 1 + 1 ?1 : 0 + 1 返回 1 而不是 3?

为什么0.86%1不是零而是0.86,因为0.86 / 1给出了余数0?

如何防止用户在Vue 3数字输入中输入低于1的值

如何增加 nvarchar 字段中的第一个数字,如 0/0

为什么在 Vue 3 函数中未定义“this”

变量增加 3 而不是 1

Vue 3与Vue 2的__vue__等价的是什么?

为什么Go中的math.Nextafter(2,3)会增加0.0000000000000004而不是0.0000000000000001?

如何增加或减少CSS中的数字(即0、1,4 ..)大小?

增加apl中的数字

在Vue.js 3中,为什么我必须在ref上使用value属性,而不是在active上使用?

为什么Unix权限系统使用1 2 3 4 ...值而不是1或0?

vue 3中的属性绑定

Vue.js 3初始化我的数字变量的正确方法是什么?

如果字符是介于0到8之间的数字,则将其增加1(其他字符不变)

使用 javascript 增加字符串中数字的第 3 次出现

在busybox sh中无法将0填充的数字增加到8以上

为什么map <bool,int> m = {{1,2,3,4,5,0}} 1号而不是3号?

随着行的增加,jquery 中的数字增加

vue 3导入vue-tables-3,但出现错误:“ _ vue.default不是构造函数”

Vue 3:Vue.createApp不是构造函数

为什么我们在 Docker Compose 中增加版本?(版本 1、2 和 3)

Unity3d 新输入系统逐步增加/减少值,而不是立即从 0 到 1 或 -1