к примеру UPDATE без WHERE, ну мало ли, человеческий фактор
Каким образом можно защититься от подобного рода ошибок?
current.dataValues.count_col;
function App() {
const [ items, setItems ] = useState([]);
const onItemClick = ({ target: { dataset: { id } } }) =>
setItems(items.filter(n => n !== +id));
const onAddNewClick = () =>
setItems([ ...items, 1 + Math.max(0, ...items) ]);
return (
<div>
{items.map(n => <button onClick={onItemClick} data-id={n}>#{n}</button>)}
<button onClick={onAddNewClick}>add</button>
</div>
);
}
state = {
values: [false, false, false], // Изначально все 3 чекбокса выключены
};
onToggleCheckbox = (checked, index) => {
this.setState(({ values: prevValues }) => {
const newValues = [...prevValues]; // меняем состояние нужного чекбокса по индексу
newValues[index] = checked;
return {
value: newValues,
};
});
};
onToggleAll = checked => {
this.setState(({ values }) => ({
values: values.map(() => checked),
}));
};
<div>
{this.props.checked.map((value, index) => (
<input
type="checkbox"
checked={value}
key={index}
onChange={event => this.props.onToggle(event, index)}
/>
))}
</div>
<input type="checkbox" checked={this.props.values.every(value => value)} onChange={event => this.props.onToggleAll(event.target.checked)} />
package com.mycompany;
import java.lang.reflect.Type;
import java.util.Map;
import java.util.Map.Entry;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class ReTest {
@lombok.Data
public static class MyData {
private String name;
private String lastName;
}
public static void main(String[] args) {
String json = "{\n" +
" \"12:30\": [\n" +
" {\n" +
" name: \"someName\",\n" +
" lastName: \"someLastName\"\n" +
" },\n" +
" {\n" +
" name: \"someName2\",\n" +
" lastName: \"someLastName2\"\n" +
" }\n" +
" ],\n" +
" \"13:15\": [\n" +
" {\n" +
" name: \"someName3\",\n" +
" lastName: \"someLastName3\"\n" +
" },\n" +
" {\n" +
" name: \"someName4\",\n" +
" lastName: \"someLastName4\"\n" +
" }\n" +
" ]\n" +
"}";
Gson parser = new Gson(); // create json parser
Type type = new TypeToken<Map<String, MyData[]>>(){}.getType(); // create custom type
Map<String, MyData[]> data = parser.fromJson(json, type); // parse data to
for( Entry<String, MyData[]> d: data.entrySet()) {
System.out.printf("%s\n", d.getKey());
for(MyData e: d.getValue()) {
System.out.printf(" %s\n", e);
}
System.out.println();
}
}
}
12:30
ReTest.MyData(name=someName, lastName=someLastName)
ReTest.MyData(name=someName2, lastName=someLastName2)
13:15
ReTest.MyData(name=someName3, lastName=someLastName3)
ReTest.MyData(name=someName4, lastName=someLastName4)
<template>
<div>
<!-- Вызываем вычисляемое свойство -->
{{ decodedData }}
<div>
</template>
<script>
export default {
// Входной параметр, через который компонент будет принимать данные в JSON представление.
props: ['dataFromPhp '],
computed: {
// Вычисляемое свойство, которое будет преобразовывать данные из JSON в объект js.
decodedData() {
return JSON.parse(this.dataFromPhp );
}
}
}
</script>
<example-component data-from-php="<?= json_encode($data) ?>"></example-component>
Как это делается на Vue JS? Заранее спасибоНе могу обозначить своё мнение, как хоть сколь нибудь экспертное, но в целом, в JS'е (любом, клиентском, связка с серверной частью) обычно это делается одним из двух вариантов:
<script>
'e, например, что-то вроде: var a = 100; //Генерируется в PHP