vuejs中的计算函数无法与我一起工作

问题描述:

我是vue.js新手,出现问题, 我有一个计算函数,用于提醒Word反转, 我让这个函数能够点击按钮,但它工作正常在页面加载,所以是什么问题。 这是vue.js代码,vuejs中的计算函数无法与我一起工作

new Vue({ 
el: '#computed', 
data: { 
    word: 'welcome', 
}, 
computed: { 
    alertRev: function() { 
     // get the word reversed 
     alert (this.word.split('').reverse().join('')); 
    }, 
}}); 

这是HTML代码:

<div id="computed"> 
    <button @click="alertRev">reverse the word</button> 
</div> 

这是的jsfiddle链接 Link to code

+0

计算是一个属性,而不是一个方法。当你打开你的小提琴时,它会提醒相反的情况,因为它是在Vue创建时计算的。但计算并不是一种方法。这就是为什么当你点击时,没有任何反应。如果你想点击执行警报,然后制作一个方法。 – Bert

+0

非常感谢,bert, 我明白 – shennawy

+0

jsFiddle的合作选项非常酷。我不知道它可以做到这一点:) – Bert

由于@BertEvans指出,一个方法将实现你想做。

我的理解是,一个计算属性通常会返回一个函数的结果,而不是执行一个动作,比如一个警报。从Vuejs文档无耻变形例(https://vuejs.org/v2/guide/computed.html):

new Vue({ 
 
    el: '#computed', 
 
    data: { 
 
    word: 'welcome', 
 
    }, 
 
    computed: { 
 
    reversedMessage: function() { 
 
     // get the word reversed, no alert 
 
     return this.word.split('').reverse().join(''); 
 
    }, 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.6/vue.min.js"></script> 
 
<div id="computed" style="font-family: arial;"> 
 
    Type the word: <input type="text" v-model="word"> 
 
    <br /> 
 
    <br /> Reversed: {{ reversedMessage }} 
 
</div>

的方法,例如:

new Vue({ 
 
    el: '#computed', 
 
    data: { 
 
    word: 'welcome', 
 
    }, 
 
    methods: { 
 
    alertRev: function() { 
 
     // get the word reversed 
 
     alert(this.word.split('').reverse().join('')); 
 
    }, 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.6/vue.min.js"></script> 
 
<div id="computed"> 
 
    Word: {{ word }} 
 
    <br /> 
 
    <br /> 
 
    <button @click="alertRev">Reverse the word (alert)</button> 
 
</div>

顺便说一句,计算性能不是非常方便与异步操作。

希望这并不强调你可以用湿拖把在邮票背面写下我对Vuejs的了解。