vue.js - Vue js增量运算符(++)没有给出预期的输出
问题描述
为什么下面的 vue js 代码显示输出 102。
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>
<div id = "intro" style = "text-align:center;">
<h1>{{ ++serial }}</h1>
</div>
<script type = "text/javascript">
var app = new Vue({
el: '#intro',
data: {
serial: 0
}
});
</script>
</body>
</html>
我需要一个解释。我的预期输出是 1。如何解决这个问题?
解决方案
不允许在模板内运行更新组件属性的语句,因为这会造成无限循环,您可以使用计算属性实现所需的行为,如下所示:
var app = new Vue({
el: '#intro',
data: {
serial: 0
},
computed: {
incrementedSerial() {
return ++this.serial
}
}
});
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="intro" style="text-align:center;">
<h1>{{ incrementedSerial }}</h1>
</div>
推荐阅读
- mongodb - Docker-compose 缓存我的 mongodb 密码
- java - 为什么bazel将资源从子目录复制到jar的顶层
- html - 如何在Angular中超时后更新html页面视图
- c++ - 迭代一个 STL 集直到倒数第二个索引
- arrays - mips 完全是新手,有人能告诉我在这个项目中我在哪里出错以反转 .byte 和 .word 数组吗?
- javascript - Uncaught (in promise) TypeError: listing.owner is undefined when trying to submit
- python - 如何从给定句子中删除关键字
- javascript - 如何让javascript函数在输入键上运行,而不是点击?
- oracle - 需要 Oracle PLSQL 函数的输出帮助
- java - 为什么我使用'androidx.appcompat.widget.Toolbar'来设置工具栏,应用程序强制终止