необходимо отлавливать событие скроллинга
что-то вроде $element.bind('mousewheel',
<div @wheel="onWheel" @scroll="onScroll">
methods: {
onWheel() {
console.log('wheel');
},
onScroll() {
console.log('scroll');
},
},
this.$set(this.arrB, i, 'значение')
с data-table vuetify она не работает
<v-data-table
ref="table"
...
table
:mounted() {
new ColumnResizer.default(this.$refs.table.$el.querySelector('table.v-datatable'), {
liveDrag: true,
draggingClass: 'rangeDrag',
gripInnerHtml: '<div class="rangeGrip"></div>',
minWidth: 8,
});
},
При изменении item.department меняется и item_loaded.department
this.item_loaded = this.item
this.item_loaded = { ...this.item }
data() {
return {
item_loaded: { ...this.item },
};
},
isChanged() {
return this.item_loaded.department !== this.item.department;
},
cannot read property of null
. Должен быть объект:default: () => ({ /* можно указать какие-нибудь свойства с дефолтными значениями */ }),
v-model="item.department"
). Правильно будет эмитить изменения в родительский компонент и обновлять объект уже там. В родителе цепляете значение для параметра item с модификатором sync, а в рассматриваемом компоненте v-model
заменяете на установку значения и обработку события input:<input
:value="item.department"
@input="$emit('update:item', { ...item, department: $event.target.value })"
>
:data="chartData"
computed: {
chartData() {
return this.$store.getters.filterManagersChart.map(n => ({
name: n,
data: 53,
}));
},
},
watch: {
measureSystem: {
immediate: true,
handler() {
// сюда переносите код из mounted - axios.get(...)
},
},
},
computed: {
measureSystem() {
return this.toggle === 1 ? 'metric' : 'Imperial';
},
},
<input @change="doSomethingWithValue" />
methods: {
doSomethingWithValue(e) {
const value = e.target.value;
...
<input @change="doSomethingWithValue($event, 'hello, world!!')" />
как-то ограничить по высоте v-app
application--wrap
называется, в стилях которого задана минимальная высота 100vh. Можете переопределить. computed: {
sortedInfo() {
return [...this.info].sort((a, b) => {
// как именно сортировать - тут уж вам виднее
});
},
},
filters: {
shorten: (val, words = 2) => val.split(' ').slice(0, words).join(' '),
},
<div>{{ text | shorten }}</div>
<div>{{ text | shorten(5) }}</div>
watch: {
'$route.query.page'() {
this.loadCustomers();
},
},
watch: {
'$route.query.page': {
immediate: true,
handler: 'loadCustomers',
},
},
module.exports = {
chainWebpack: config => {
config
.plugin('html')
.tap(args => {
args[0].minify.removeAttributeQuotes = false;
return args;
})
}
};
<div>{{ address }}</div>
<div ref="map"></div>
data: () => ({
coords: [ ... ],
address: '',
}),
mounted() {
ymaps.ready(() => {
const map = new ymaps.Map(this.$refs.map, { ... });
const marker = new ymaps.Placemark(this.coords, {}, {
draggable: true,
});
marker.events.add('dragend', e => {
this.coords = e.get('target').geometry.getCoordinates();
});
map.geoObjects.add(marker);
this.$watch('coords', {
immediate: true,
handler(coords) {
ymaps.geocode(coords).then(r => {
this.address = r.geoObjects.get(0).properties.get('name');
});
},
});
});
},
Проблема в реактивности, при изменении текстов в инпуте, меняются старые записанные обьекты
state.filter_list.push({ ...state.filter })