<template>
<input type="text"
:placeholder="placeholder"
:value="value"
@input="onchange">
<app-transition type="toggleDown">
<div>{{ notify }}</div>
</app-transition>
</template>
<script>
export default {
name: 'app-input',
props: ['type', 'value', 'placeholder'],
computed: {
notify() {
let text = 'Поле может содержать только ';
return ( this.type === 'tel' && text + 'цифры' )
|| ( this.type === 'page' && text + 'латинские буквы, цифры (не менее 6 символов)' )
|| ( this.type === 'name' && text + 'русские и латинские буквы, цифры (не менее 3 символов)' )
},
validation(value) {
return {
tel: (/^[0-9]+$/).test(this.value) || !this.value.length,
page: (/^[a-z0-9]+$/i).test(this.value) && this.value.length > 5,
name: (/^[a-zа-яA-ZА-Я0-9 ]+$/i).test(this.value) && this.value.length > 3
}
}
},
methods: {
onchange(e) {
if ( this.validation[this.type] ) {
this.$emit('input', e.target.value);
}
}
}
}
</script>
You can use ready-made solutions:
www.google.com/analytics
www.clicktale.com
https://segment.io/
www.extrawatch.com
mouseflow.com
https://www.seevolution.com/
clicky.com
You can do amazing stuff with Google Analytics and its Event Tracker:
https://developers.google.com/analytics/devguides/...
searchenginewatch.com/article/2287906/10-Google-An...
If you're looking for a custom-made solution, you can try the following one with PHP and JavaScript:
css-tricks.com/tracking-clicks-building-a-clickmap...
Keep in mind that using third-party solutions is better performance-wise. Writing the coordinates of the mouse movements in a database in real time, needs a lot of resources.
<div class="inner-2">Some text 2</div>
db: {
users: {
id: 111,
name: 'Rostislav',
room: 8888,
},
rooms: {
id: 8888,
messages: [...],
owner: 111,
public: true
}
}
Так как запрос к базе посылается прямо от клиента, пользователь может спокойно изменить условие запроса и посмотреть не свои, а чужие таски? Как я понимаю эта система получается бессмысленна и тут явно нужен бекенд?
{
"rules": {
"tasks": {
"$user_id": {
// читать может только сам пользователь
".read": "$user_id === auth.uid",
// писать могут все аутентифицированные и только создавать новые
".write": "auth !== null && !data.exists()"
}
}
}
}