У меня есть некоторые элементы, созданные v-for. Как я могу запустить функцию только один раз, сохранив условие «для каждого создания элемента».
<div v-for"value in values">
<div @ function(value, domElement) if value.bool===true @>
</div>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Не очень понятно, что именно вы хотите:
<div @ function(value, domElement) if value.bool===true @>
Итак, вот все возможные решения, которые вы хотите реализовать.
Вы можете привязать метод с помощью модификатора once:
<div @click.once = "yourMethod">
Или, если вы не хотите изменять содержимое, вы можете использовать v-once:
<div v-once>{{ neverChanged }}</div>
Но если вам просто нужно использовать функцию при ее создании, вызовите функцию внутри созданного свойства и не привязывайте метод в другом месте.
created() {
if (condition) {
this.yourMethod()
}
}
Самый простой способ, IMO, - сделать каждый из этих элементов компонентом Vue и передать функцию как опору.
Файл один
<div v-for = "value in values">
<Custom-Component :propValue = "value" :propFunction = "functionYouNeed" />
</div>
Пользовательский компонент
<template>
<div> {{propValue.value}} </div>
</template>
<script>
export default {
props: ['propFunction', 'propValue'],
created(){
if (this.propValue.bool === true) {
this.propFunction()
}
}
}
</script>
Это то, что я бы порекомендовал, хотя я чувствую, что варианта использования OP можно было бы в первую очередь избежать.
Я также рекомендовал бы, если бы речь шла о компоненте. Но OP, похоже, делает это элементами.
Это необычно. Вы, наверное, хотите чего-то еще. Почему вы хотите выполнить функцию?