Как правильно сделать добавление отзывов? При сабмите формы хочу добавить отзыв, отобразить на странице и очистить поля в форме. Как это можно реализовать ?
Мой вариант: В beforeCreated получить все отзывы c сервера и отобразить их на странице.Создать массив в store и в него записывать данные, которые нужно отобразить после сабмита формы.Но тогда появляется проблема, данные в форме продолжают быть привязаны к массиву т.е. очистить поля не получится. Как можно решить данную проблему ? Код моего варианта ниже:
export default {
data() {
return {
review: {
userName: '',
reviewText: ''
}
},
methods: {
sendReview() {
this.$store.dispatch('postReview', this.review)
}
},
computed: {
reviews() {
return this.$store.getters.getReviews
}
},
beforeCreate() {
this.$store.dispatch('loadReviews')
}
}
// vuex store
import Vue from 'vue';
export default {
state: {
reviews: []
},
getters: {
getReviews(state) {
return state.reviews
}
},
mutations: {
updateReviews(state, data) {
state.reviews = data;
},
addNewReview(state, data) {
state.reviews.push(data);
},
},
actions: {
loadReviews({
commit
}) {
Vue.http.get('url.json')
.then(res => {
return res.json()
})
.then(data => {
commit('updateReviews', data)
})
},
postReview({
commit
}, payload) {
Vue.http.post('url', payload)
.then(() => {
commit('addNewReview', payload)
})
}
}
}
<template>
<div class="container">
<h1>Отзывы</h1>
<form
@submit.prevent="sendReview">
<input
v-model="review.userName"
type="text"
placeholder="Имя" >
<textarea
v-model="review.reviewText"
placeholder="Отзыв"
cols="30"
rows="3">
</textarea>
<input
type="submit" >
</form>
<ul>
<li v-for="item in reviews">
<h2>{{item.userName}}</h2>
<p>{{item.reviewText}}</p>
</li>
</ul>
</div>
</template>
Решил проблему следующим образом: т.е. теперь данные не зависят от v-model
class Review {
constructor(user, text) {
this.userName = user
this.reviewText = text
}
}
sendReview() {
const review = {
userName: this.review.userName,
reviewText: this.review.reviewText
}
this.$store.dispatch('postReview', review)
.then(() => {
this.review.userName = '';
this.review.reviewText = '';
})
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Какой должен быть запрос к БД, чтобы можно было создать колонку для хранения тэговПодумал что можно сделать так:
Я юзаю денвер и захожу в phpmyadmin http://localhost/Tools/phpMyAdmin/но как я понимаю эти базы данных, которые я создаю они остаются на этом компьютере и с другого...
Можно ли как-то в режиме онлайн отслеживать нагрузку на все или отдельные таблицы MySQLЦель: отследить, какая именно таблица при накате обновлений...