Vladislav
с:
Varyen
есть какой-то простой готовый способ отрендерить компонент только когда я до него доскроллил на экране? размеры знаю заранее
ℝei
Мб после лета
ixplo
пришлось заюзать Vue.set(...) чтобы не шаманить со сплайсами и длиной
Vladislav
и лиснерами
Varyen
чистым джсом через pageYOffset
можно, но чтобы не писать ничего и не высчитывать :)
Varyen
вообще нашел уже https://github.com/Akryum/vue-observe-visibility
Varyen
не знал что такое апи в браузерах есть
Max
Чат, а юзал кто Leaflet вместе с Vue? Как вы импортили стили и сам L?
Varyen
могу ещё пример на реакте скинуть
не, я уж сделаю первый проект на вуе, а потом мооожет быть когда-нибудь попробую реакт для сравнения )
Alexander
эвона чо https://medium.com/@codetheorist/using-vuejs-computed-properties-for-dynamic-module-imports-2046743afcaf
Al
А нюхт компоненты уи содержит или надо ещё что-то добавлять типа element ui?
Vladimir
по надобности надо добавлять
Сергей
Подскажите как "пробросить" свойство в функцию в методе? Т.е. есть в data есть массив Users с объектами User и есть метод showUsers который, например, использует forEach для обхода и показа пользователей в массиве. Как обратиться к Users.user? Пробрасывать через window.users и внутри функции использовать глобально как то не очень выглядит
Сергей
да
Arstanbek
И нужно на клик компоненты вытащить нужного юзера из юзерс?
Arstanbek
вообще, из метода вам доступны все объявленные свойства в data через контекст (this.имя_свойства). Главное, чтобы это свойство было объявлено изначально
Сергей
а какая разница по какому событию? Главное получить из функции внутри метода "внейшний" по отношению к ней объект. this то указывает на функцию-обходчик
Сергей
нет в forEach мы потеряем контекст
Arstanbek
forEach чего? users?
Сергей
да
Сергей
это для примера
Arstanbek
нет в forEach мы потеряем контекст
контекст можно запомнить в ссылке. Ну и если не хотите терять конткест и вам чуждо запоминание контекста, то воспользуйтесь стрелочными функциями в форИч
Alexandr
не совсем понял, что имеется ввиду, но из того, что я понял - индекс отправленный в функцию не поможет?
Alexandr
и по индексу тянуть потом из массива объект
Alexandr
вообще, конечно, код поможет понять что к чему
Arstanbek
не совсем понял, что имеется ввиду, но из того, что я понял - индекс отправленный в функцию не поможет?
конечно поможет. НАпример, я так понял, что users вы отображаете в компоненте v-for'ом. Тогда, вызывайте нужжный вам метод, передав туда индекс Юзера. В самом методе по индексу массива вытащите элемент массива юзеров .
Сергей
блин, лямбдой можно воспользоваться же, точно)
Alexandr
да там просто можно return array[index].userName
Сергей
да смысл такой чтобы суть была понятна:
Arstanbek
смысл сути стала ясна ))
Сергей
допустим у есть uses и есть status в data() в методе this.users.sort(function(a,b){и вот тут мы хотим обратиться к status, а this.status дает undefined, что логично
Сергей
ну в общем, надо отдыхать чаще)
Arstanbek
допустим у есть uses и есть status в data() в методе this.users.sort(function(a,b){и вот тут мы хотим обратиться к status, а this.status дает undefined, что логично
меня тут ругали за this|self, но это как по мне, вносит больше ясности. Что мешает в начале метода создать ссылки на реактивные данные, а потом юзать их сколько влезет? let {users, status} = this И для навигации в ИДЕ это прелесть.
Сергей
да ничего, я лично и не считаю это прям плохим решением. Просто без них код чище, стараюсь не использовать все без чего можно обойтись
Arstanbek
да ничего, я лично и не считаю это прям плохим решением. Просто без них код чище, стараюсь не использовать все без чего можно обойтись
Если писать одну большую портянку - то да. Но когда код правильно декомпозирован, то такими незначительными манипуляциями можно сделать код яснее, а когда уже заработает - рефакторинг
Сергей
и двойная работа?)
Arstanbek
)) Можно подумать, что вы её так часто избегаете (я про двойную работу) Двойная работа в жини программиста сплошь и рядом
Сергей
да, но если оплата почасовая то хочется, да и нужно делать быстро и сразу)
Сергей
а рефакторинг это когда скучно становится зимними холодными вечерами и с бутылочкой чего нибудь алкогольного... но уже не за плату)
Сергей
не, идеальность обычно в жертву приносится скорости
Arstanbek
а рефакторинг это когда скучно становится зимними холодными вечерами и с бутылочкой чего нибудь алкогольного... но уже не за плату)
Мне кажется, что рефакторинг в любом проекте неизбежен. И хорошо, если есть договоренность в команде, как вести кот.
Сергей
а часто за него платят? Большие затраты по времени, а уже все работает... и ладно
Андрей
Кот - это важное.
Сергей
шредингера)
Arstanbek
а часто за него платят? Большие затраты по времени, а уже все работает... и ладно
а мне кажется, о чистоте кода должен заботиться заказчик, который изначально предусматривает такие работы в стоимости проекта.
Александр
Any нет?
Arstanbek
Any нет?
Эни - илибой )
Arstanbek
это вы в пропсах?
Александр
Да
Александр
Как я понял просто не указывать тип?
Arstanbek
field: null - и будет вам любой тип
Александр
Arstanbek
😁👍
Max
@heymaxim - это?
Не совсем. Там надо заимпортить стили лифлета и после них сам лифлет. Я заимпортил стили ссылкой в main.js и подрубил import L from 'leaflet' в разделе <script> самого компонента, где инициализируется карта. Метод повесил на mounted() { this.$nextTick(function () { const mymap = L.map('map').setView([51.505, -0.09], 13); L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', { maxZoom: 18, attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' + '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' + 'Imagery © <a href="http://mapbox.com">Mapbox</a>', id: 'mapbox.streets' }).addTo(mymap); }); },
Max
а дальше что необходимо?
Да все, карта должна отрисоваться базовая. А она пишет, что L is not defined т.е. не видит лифлет все равно
Arstanbek
import L from 'leaflet';
Arstanbek
в компоненте это есть?
Max
Arstanbek
я так не делал. У меня так: <v-map :zoom=mapZoom :center="mapCenter" v-on:l-click="setPlace" v-on:l-zoomend="changeZoom"> <v-tilelayer :url="map.tyleUrl"></v-tilelayer>