【问题标题】:Vuejs why all the methods are called?Vuejs为什么所有的方法都被调用?
【发布时间】:2023-03-18 18:58:01
【问题描述】:

在下面的代码中,第一个标签p 呈现name 并且它还绑定到输入字段的输入事件。 有一种称为随机的方法,它会生成随机数。它在最后一个p 标记中呈现。想知道为什么random method 被input 框中的每个字符input 调用?不应该只执行一个吗?

我知道我可以将 Vuejs 指令 v-once 添加到最后一个 p 标记并且它保持不变。

谁能帮助我更好地理解这一点?

Vue.config.devtools = false
Vue.config.productionTip = false
new Vue({
el:"#exercise",
data: {
    name: "Tokyo",
},
methods: {
    changeName: function(event){
        this.name = event.target.value;
    },
    random: function(){
        return Math.random();
    }
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="exercise">
    <p>VueJS is pretty cool - {{ name }}</p>
    <br/>
    <input type="text" v-bind:value="name" v-on:input="changeName">
    <br/>
    <p>{{random()}}</p>
</div>

【问题讨论】:

    标签: vue.js vue-directives


    【解决方案1】:

    它会更新,因为它绑定到您的 vue 实例。每当name 更改时,它都会在 DOM 中自动更改。

    每次按键都会触发changeName 方法。现在changeName 更改name。 Vue.js 检测到这种变化并更新你的 DOM。

    【讨论】:

    • 我现在明白了!我不能说不要更新整个 DOM 而是只更新所需的吗?
    • 它只更新在你的情况下发生变化的数据它唯一的name
    • @Ifaruki 我认为OP指的是为什么当name更改时随机数会更新,随机数没有链接到name,除了它在同一个模板中。
    猜你喜欢
    • 2019-01-23
    • 1970-01-01
    • 2016-10-06
    • 2017-12-07
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多