Вы можете сделать hasPermission
a в стиле метода getter:
getters: {
hasPermission: (state) => (permission) => {
for (var i = 0; i < state.user.permissions.length; i++) {
var perm = state.user.permissions[i];
if (perm.name == permission) {
return true;
}
}
return false;
}
}
Используйте mapGetters
, чтобы включить его в компонент:
import { mapGetters } from 'vuex';
computed: {
...mapGetters(['hasPermission'])
}
Используйте его в шаблоне, например:
v-if="hasPermission('test')"
Просто имейте в виду, что эти геттеры не кэшируются как обычные геттеры, но тогда и действия не являются.
Вот демо