В Vue.js как написать пользовательские фильтры в отдельном файле и использовать их в различных компонентах, объявив в main.Яш?
Я пробовал это, но это не работает.
// filter.js
export default {
converTimestamp: function (seconds) {
var date = new Date(seconds * 1000);
return date.toDateString();
}
};
// main.js
import customFilters from './store/filters';
2 ответов
вот пример:
// MyFilter.js
import Vue from 'vue';
Vue.filter('myFilter', value => {
return value.toUpperCase();
});
// main.js
import './MyFilter.js';
если вы не хотите регистрировать фильтры глобально, вы можете сделать это следующим образом:
// MyFilter.js
export default function (value) {
return value.toUpperCase();
}
// MyComponent.vue
import MyFilter from './MyFilter.js';
export default {
filters: {
MyFilter,
},
};
Если у вас не так много фильтров, вы также можете определить их в одном файле:
// filters.js
export default {
filterA: () => {},
filterB: () => {},
}
и импортировать их в глобальном масштабе:
// main.js
import filters from './filters';
for(let name in filters) {
Vue.filter(name, filters[name]);
}