@vuejs_ru

Страница 2080 из 3900
Роман
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

думал готовое что-то есть, но не могу найти

Evgeny
16.02.2018
20:08:13
Varyen
16.02.2018
20:14:32
Вообще, еще есть $root ?
ну это слишком :)

прокси к нему, чтобы не так постыдно выглядело

вот это вариант

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
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
решил следать через стор

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'); всё рушит. помогите, пожалуйста

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

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

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
подскажи, плиз, какие кавычки)
https://core.telegram.org/bots/api#markdown-style

Максим
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
ssr что такое?
это когда рендеришь фронтенд на сервере

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 )

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

Поэтому на будущее хочу найти замену

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

Если тебе бабель не нужен, тогда и проблем особо нет.
Ты имел ввиду наоборот? Мне надо же минифицировать js ?

Stanislav
17.02.2018
09:08:09
Ты имел ввиду наоборот? Мне надо же минифицировать js ?
Выкидываешь углифай, и ставишь какой-нибудь бабилли

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
dispatch().then( // your code )
благодарю) В доках даже есть пример, а я не дочитал до него)

Stanislav
17.02.2018
09:18:36
Устарел же
Чертов фронтенд!

Страница 2080 из 3900