Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
101
rated 0 times [  104] [ 3]  / answers: 1 / hits: 10892  / 3 Years ago, fri, june 11, 2021, 12:00:00

i'm trying to use filter in vue.js 3 to filter data into upper case but this error show when any filter?!! i tried lot of solutions but no way


main.js:


import Vue from "vue";
import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import "bootstrap";
import "bootstrap/dist/css/bootstrap.min.css";
import "./scss/main.scss";
import "normalize.css";

createApp(App).use(store).use(router).mount("#app");

new Vue({
router,
store,
render: h => h(App)
}).$mount("#app");

Vue.config.productionTip = false;

Vue.filter('uppercase', function (v){
return v.toUpperCase()
});

component that i use filter:


<template>
<div class="post-box">
<span class="views">{{ views }}</span>
<h3 class="title">{{title}}</h3>
<span class="date">{{ date }}</span>
<p class="content">{{ content }}</p>
<div class="row">
<div class="col-sm-6 author">
<span class="post-author">{{author | uppercase }}</span>
</div>
<div class="col-sm-6 category">
<span class="post-category">{{category}}</span>
</div>
</div>
</div>
</template>

<script>
export default {
props: ['title','content','author','category','date','views'],
name: "BlogPost",
};
</script>

could u help me


More From » vue.js

 Answers
10

The solution is to use a computed property instead of filters which are remove in vue 3 :
in main.js remove import Vue from 'vue' and :


new Vue({
router,
store,
render: h => h(App)
}).$mount("#app");

Vue.config.productionTip = false;

Vue.filter('uppercase', function (v){
return v.toUpperCase()
});

In the child component define that property and use it inside the template as follows :


<template>
...
<div class="col-sm-6 author">
<span class="post-author">{{ uppercase(author) }}</span>
</div>
...
</template>

<script>
export default {
props: ['title','content','author','category','date','views'],
name: "BlogPost",
computed:{
uppercase(){
return (v)=>{
return v.toUpperCase()
}
}
}
};
</script>

[#1253] Thursday, June 3, 2021, 3 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
harleyterryp

Total Points: 290
Total Questions: 92
Total Answers: 95

Location: Montenegro
Member since Sun, May 7, 2023
1 Year ago
harleyterryp questions
;