1

i have a doubt on a little project that i am developing, i don't want to use custom filters, i just want to use computed filters to output the reverse of a simple text that i defined in my data, at the moment i tried this:

<p>{{someText | reverseFiltered}}</p>
<script>
 export default {
 data(){
 return {
 someText: "Apple"
 }
 },
 computed: {
 reverseFiltered(){
 return this.someText.split("").reverse().join("");
 }
 }
 }
</script>

the output is the same as the data text, no reverse, can you guys explain me how it works, i am a little confused with the computed filter

Mihai Alexandru-Ionut
48.6k14 gold badges106 silver badges132 bronze badges
asked Mar 24, 2017 at 16:23

2 Answers 2

1

You have to use directly reverseFiltered, because you use computedMethod.

<p>{{reverseFiltered}}</p>

var data = {
 message: 'Hello Vue.js!'
}
var demo = new Vue({
 el: '#demo',
 data(){
 return {
 someText: "Apple"
 }
 },
 computed: {
 reverseFiltered(){
 return this.someText.split("").reverse().join("");
 }
 }
})
<script src="https://vuejs.org/js/vue.min.js"></script>
<div id="demo">
 <p>{{reverseFiltered}}</p>
</div>

In your code, you wrote a computed method, not a filter.

A Vue.js filter is essentially a function that takes a value, processes it, and then returns the processed value.

Here is an example of filter.

Vue.filter('reverse', function (value) {
 return value.split('').reverse().join('')
});
var demo = new Vue({
 el: '#demo',
 data(){
 return {
 someText: "Apple"
 }
 },
 computed: {
 reverseFiltered(){
 return this.someText.split("").reverse().join("");
 }
 }
});
<script src="https://vuejs.org/js/vue.min.js"></script>
<div id="demo">
 <p>{{someText | reverse}}</p>
</div>

answered Mar 24, 2017 at 16:27

Comments

1

The computed value is a "variable" of it's own.

You can just reference it in your template as {{ reverseFiltered }}

De computed properties "watch" for changes on it's values, and updates when those values update. So you can see computed properties as "dynamic properties", they change when they have to, and update the dom accordingly.

See also this documentation: https://v2.vuejs.org/v2/guide/computed.html

tony19
140k23 gold badges281 silver badges354 bronze badges
answered Mar 24, 2017 at 16:28

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.