import { computed, effect, reactive } from "@vue/reactivity";
const obj = reactive({ foo: 1 }); // Реактивная переменная
const doubleFoo = computed(() => obj.foo * 2); // Вычисляемое свойство (Реактивная переменная которая автоматически пересчитывается когда изменяется какая-либо из использованных внутри реактивных переменных)
effect(() => console.log("doubleFoo value changed to:" + doubleFoo.value)); // Функция, запускается когда изменяется какая-либо из использованных внутри реактивных переменных)
// Каждую секунду изменяет значение obj.foo
// После чего автоматически пересчитывается значение doubleFoo
// После изменения doubleFoo вызывается функция переданная в effect и выводится сообщение в лог
setInterval(() => obj.foo++, 1000)
methods: {
setDeleteTimeout(message) {
message.timeout = setTimeout(this.удалитьСообщение, 5000, message);
},
delDeleteTimeout(message) {
clearTimeout(message.timeout);
message.timeout = null;
},
...
<div
v-for="n in messages"
@mouseenter="delDeleteTimeout(n)"
@mouseleave="setDeleteTimeout(n)"
...
module.exports = {
commandMem: (message) => { message.channel.send("hello") }
};
const { commandMem } = require('./second.js');
function validate(pass) {
if (pass.length >= 8) {
if (/[^a-zA-Z0-9]/.test(pass)) {
return 'NO'
}
if (/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/.test(pass)) {
return 'YES'
}
}
return 'NO'
}
validate('123ASDDASD') // NO
validate('123qwe_ASD') // NO
validate('123qwe') // NO
validate('123qweASD') // YES
Route::get('/', 'Equip@allItems');
Route::get('equipment', 'Equip@allEquipmentItems');
private function allItemsInternal(string $template){
return view($template, [
'all' => $this->eqs(),
'types' => $this->types()
]);
}
public function allItems(){
return $this->allItemsInternal('all');
}
public function allEquipmentItems(){
return $this->allItemsInternal('equipment');
}