
Роман
16.02.2018
18:47:26
и this.$state.data.test = '123';
скорее всего будет работать, но так не стоит делать, потому что изменения не будут отслеживаться, и тогда непонятно нафига вообще использовать вуекс, можно вместо него использовать обычный вуе компонент как контейнер с данными. О чём кстати сказано в документации, тот самый простой случай, о котором ты говорил.

Varyen
16.02.2018
18:48:07
ну типа того, я посмотрел тикеты - так понял, что "мы понимаем, такой хелпер очень просто написать, но не будем"
я поскольку первый раз пишу с vue (и вообще первый раз пишу SPA, опыт при этом приличный) сразу удивился, зачем тут так все усложнять. Может напишу для себя такой хелпер, а потом постепенно где нужно перейду на vuex
да, вуе-компонент с данными мне тут скорее больше подходит, попробую сделать как плагин, чтобы не нужно было его везде импортить

Google

Varyen
16.02.2018
18:50:12
но чтобы при этом он использовал vuex
думал готовое что-то есть, но не могу найти

Stanislav
16.02.2018
20:00:31

Evgeny
16.02.2018
20:08:13

Varyen
16.02.2018
20:14:32
прокси к нему, чтобы не так постыдно выглядело
вот это вариант

Stanislav
16.02.2018
20:20:34

Varyen
16.02.2018
20:32:27
И назвать это Vuex
не, у меня хитрее идея. Я хочу для себя упростить vuex, и когда нужно будет использовать его рекомендуемый подход. Поскольку сегодня пятница, я думаю мне можно простить такую гениальную идею.

Denis
16.02.2018
21:39:44
Do not mutate vuex store state outside mutation handlers.
state: {
markers: []
},
mutations: {
addMarkers(state, marker) {
Vue.set(state, 'markers', marker)
}
},
_______________
this.$store.commit('addMarkers', this.markers);
this.markers - локальный стейт
Что я делаю не так?

Google

Alexander
16.02.2018
21:42:49

DimenSi
16.02.2018
21:44:40

Denis
16.02.2018
21:45:05
рекомендоавали

DimenSi
16.02.2018
21:45:12
кто?

Denis
16.02.2018
21:45:22
выше в чате

DimenSi
16.02.2018
21:45:29
а, ты типо маркеры полностью перезаписываешь?

Denis
16.02.2018
21:45:50
сек

DimenSi
16.02.2018
21:45:59
но state.markers = marker, так же должно же работать

Denis
16.02.2018
21:46:13
methods: {
mapRclicked(mouseArgs) {
let _self = this;
const createdMarker = this.addMarker();
createdMarker.position.lat = mouseArgs.latLng.lat();
createdMarker.position.lng = mouseArgs.latLng.lng();
//Add marker values to Store
// this.$store.commit('addMarkers', this.markers);
console.log(this.markers)
},
addMarker: function addMarker() {
this.lastId++;
this.markers.push({
id: this.lastId,
position: {
lat: 48.8538302,
lng: 2.2982161
},
opacity: 1,
draggable: true,
enabled: true,
clicked: 0,
rightClicked: 0,
dragended: 0,
ifw: true,
ifw2text: 'This text is bad please change me :( '
});
return this.markers[this.markers.length - 1];
},
},
создаю маркер, который по умолчанию идет в локальный стейт и так же в стор

DimenSi
16.02.2018
21:47:50
ты берешь маркеры из стейта и пушишь в эти же маркеры из компонента?

Denis
16.02.2018
21:49:12
Нет
Беру маркеры из компонента и кидаю в стор

DimenSi
16.02.2018
21:50:44
но ты же понимаешь, что ты передаешь эти маркеры же в сторе и у тебя получается 2 ссылки на один массив
был у тебя массив markers в компоненте, потом ты его передал полностью со ссылкой в стор, и теперь при любой манипуляции с markers из компонента, стор считает, что кто-то из вне модифицирует

Denis
16.02.2018
21:52:54
хм...
варианты?
пока в голову ничего не приходит

DimenSi
16.02.2018
21:53:34
ну самый простой, правильно передавать массив
и вообще, зачем тебе это дублирование? типо пока кнопку не нажмут, данные из компонента не закинуться в стор?

Google

DimenSi
16.02.2018
21:55:10

Denis
16.02.2018
21:56:23
Макркеры создаются в одном компоненте (по нажатию правой кнопки). Затем мне их надо передать в другой компонент для редактирования и сохраниения (отправки на сервер)

DimenSi
16.02.2018
21:56:24
`
1.state.markers = [...markers]
2. state.markers = [].concat(markers)
3. state.markers = JSON.parse(JSON.stringify(markers))
4. state.markers = lodash.deepcopy(markers)

Denis
16.02.2018
21:56:30
решил следать через стор

DimenSi
16.02.2018
21:56:54

Denis
16.02.2018
21:57:11
для того чтобы на карте отображались при создании

DimenSi
16.02.2018
21:58:11
т.е. ты типо создаешь маркеры, а потом нажимаешь на кнопку сохранить и в другом компоненте появляется маркеры, так?

Denis
16.02.2018
21:59:02
не совсем, сразу при создании

DimenSi
16.02.2018
21:59:19
тогда нахер тебе локальная версия и почему бы сразу не пушить в стор?
и из стора получать?

Denis
16.02.2018
21:59:43
логично...
спать....
кстати...
lodash не юзаю, но нету там deepcopy вроде

DimenSi
16.02.2018
22:01:23
https://lodash.com/docs/4.17.4#cloneDeep
без разницы, контекст то понять можно

Евгений (Light4everyone)
16.02.2018
22:06:53
https://www.npmjs.com/package/nanoclone
ну или так

Andy
16.02.2018
23:47:58
привет всем, использую переводы по принципу Vue.prototype.trans = (string, args) => {
let value = _.get(window.i18n, string);
_.eachRight(args, (paramVal, paramKey) => {
value = _.replace(value, :${paramKey}, paramVal);
});
return value;
}; и потом в шаблонах {{ trans('something') }} и в биндах напр. v-bind:placeholder="trans('something')" Но в скриптах this.buttonAction = trans('something'); всё рушит. помогите, пожалуйста

freekzy
16.02.2018
23:54:12
привет всем, использую переводы по принципу Vue.prototype.trans = (string, args) => {
let value = _.get(window.i18n, string);
_.eachRight(args, (paramVal, paramKey) => {
value = _.replace(value, :${paramKey}, paramVal);
});
return value;
}; и потом в шаблонах {{ trans('something') }} и в биндах напр. v-bind:placeholder="trans('something')" Но в скриптах this.buttonAction = trans('something'); всё рушит. помогите, пожалуйста
Используй, пожалуйста, тройные обратные кавычки для обрамления кода.

Andy
16.02.2018
23:57:40

Google

Roman
16.02.2018
23:58:36
Залей на gist или еще куда, чтоб людям было проще смотреть на код

Andy
16.02.2018
23:59:05
поправил

DimenSi
17.02.2018
00:05:56
this.trans('something')
если ты в прототип записал

Andy
17.02.2018
00:07:54

DimenSi
17.02.2018
00:08:04
давно отметку выставил

Andy
17.02.2018
00:08:12
?

freekzy
17.02.2018
00:38:19
И получается:
let foo = 'foo';
const bar = { foo };

Alexander
17.02.2018
00:54:52

Максим
17.02.2018
06:10:09
Привет, подскажите такой момент - сделал приложение, vue-router использую, вебпак нормально все собирает, файлы под роуты типа 1.js 2.js создает, но в браузере ругается Error: Loading chunk 3 failed. потому что ищет эти файлы не в той папке, где они созданы, а в корне. Что где поменять?
помог
output: {publicPath: '...'}
в вебпак конфиге

Igor
17.02.2018
08:35:05
Народ поделитесь кто как делает SSR если backend php

Максим
17.02.2018
08:36:31
ssr что такое?
backend делаю на Yii2 REST API

Евгений (Light4everyone)
17.02.2018
08:37:11

Andrew
17.02.2018
08:37:21
Скорее всего, проблема в каком-то пакете, который ты импоришь
Да, склоняюсь к этому. В логах накопал что это resize detector. Буду искать, что за зависимость и откуда ноги растут. Нашёл ещё, что uglifyjs не работает с es6 синтаксисом, но пока перегонка в es5 через Бабель не помогла. Есть ли аналоги uglify и можете посоветовать способы уменьшения бандла?

Максим
17.02.2018
08:37:24
не, таким не занимаюсь
подскажите, пожалуйста. как мне добиться синхронной работы - я сначала в vuex запрашиваю токен на бекенде, и потом его использую в компоненте. как мне сделать, чтобы методы отрабатывали после получения токена в vuex, сейчас они запускаются раньше, токена нет, и 401 ошибку выдает

Google

Максим
17.02.2018
08:52:08
this.$store.dispatch('getToken'); // запрос токена
this.token = this.$store.getters.token; // получение его в компонент
this.getUserInfo(); // запрос данных с токеном

Евгений (Light4everyone)
17.02.2018
08:53:00
async await ?

Roman
17.02.2018
08:54:37
dispatch().then( // your code )

Stanislav
17.02.2018
08:55:12

Andrew
17.02.2018
08:59:21
Пакет который это делает, я написал выше. Пока не точно, но думаю, это пакет из обертки над google map api. В целом я только буду рад переписать компонент на чистый api, обертка не понравилась. Но тоже, странно, поддержка es6 хорошая, нафига мне этот транспайлер и почему не завести es6 в uglify не понятно
Поэтому на будущее хочу найти замену

Roman
17.02.2018
09:00:22

Stanislav
17.02.2018
09:03:30

Andrew
17.02.2018
09:03:44
Спасибо. Попробую в понедельник завести отдельно uglify.

Stanislav
17.02.2018
09:08:09

Roman
17.02.2018
09:09:15
По другому называется

Andrew
17.02.2018
09:11:33
Главное что есть аналоги и вебпаковский файл открыт для настроек

Roman
17.02.2018
09:12:29
В новой версии по дефолту 3й углифай будет.

Максим
17.02.2018
09:13:06

Stanislav
17.02.2018
09:18:36