• Насколько реально совмещать учебу и работу в Чехии?

    У меня данные не самые свежие (5 летней давности), может что изменилось.
    Я был в Брненском техническом университете на IT факультете.
    На посещение лекций особо никто не смотрит, важно только здаешь ли ты вовремя задания\лабораторные\экзамены.
    Но вариантов пересдать\досдать\сдать позже,
    для большинства заданий\лаб нет. пропустил время сдачи лабы, или завалил ее по полной - все можешь больше на лекции даже не ходить, нужно будет заново этот предмет в следующем году проходить. (Если до следующего года дойдет дело), так что оно может быть достаточно напряжно при совмещении с работой, но
    в принципе наверно реально.

    Основной вопрос по трудоустройству у меня был связан с визой, у меня была учебная виза, и по ней официально работать на полную ставку было нельзя. Если делать рабочую визу, то были проблемы что при увольнении надо очень быстро найти другую работу. 2 визы сразу иметь было нельзя. Вот как сейчас с этим дела я не знаю.
    Ответ написан
    Комментировать
  • Безопасность кода на JS?

    Negezor
    @Negezor
    Senior Shaurma Developer
    Вы понимаете что весь код доступный браузере не может быть априори безопасным, так как он доступен всем у кого есть доступ к сайту. Отладка Node.js недоступна пользователям так как для этого нужно запустить node в режиме --debug. Важную логику не храните на клиентском JS, оставьте её на сервере. А в браузере сделайте минификацию и отключите source map.
    Ответ написан
    Комментировать
  • Как организовать взаимодействие не связных иерархически компонентов во vue2?

    boratsagdiev
    @boratsagdiev
    В случае не связанных иерархически (не имеющих общего родителя, например), можно использовать:
    1) Общий стор (vuex)
    2) Event Bus

    В случа однофайловых компонентов event bus это просто js-файл с содержимым:
    import Vue from 'vue';
    export const EventBus = new Vue();


    Например есть два компонента: карточка товара (где-то в середине страницы) и корзина (где-то в шапке):

    1) В обоих компонентах импортируем bus
    import { EventBus } from './event-bus.js';
    2) В компоненте карточки в вызове метода, например, addToCart:
    methods: {
    	addToCart: function() {
        	EventBus.$emit('add-to-cart', 1);
    	}
    }

    3) В корзине:
    EventBus.$on("add-to-cart", count => {
    	console.log(`Cart updated on ${count} items.`)
    })


    Как сделать так, чтобы эти компоненты появлялись только после взаимодействия с ними пользователя на прошлом шаге? (т.е 2 появляется после того как пользователь выбрал значение на первом и тд..)


    В случае приведенной вами иерархии:
    <App>
    	<StepOne></StepOne>
    	<StepTwo v-if="isListItemSelected"></StepTwo>
    	<StepThree v-if="isRangeShowing"></StepThree>
    </App>


    Можно вынести в data компонента App параметры isListItemSelected (значение выбрано из списка), isRangeShowing (показан ползунок) со значениями false по умолчанию (по поводу StepOne - непонятно из вопроса показан ли он изначально).

    В компоненте StepOne, как только пользователь выберет значение, можно делать $emit (без event-bus, потому что есть отношения родитель-потомок), в App ловить событие через $on и менять значение, в случае StepOne - isListItemSelected = true. То же самое и с остальными.

    Если надо что-то менять при перемещении ползунков - то когда из компонента с ними делаете $emit и меняете какие-то значения в родительском App - их можно спускать через props в следующий компонент:
    <StepThree v-if="isRangeShowing" :range="rangeValues"></StepThree>
    и не забыть указать в StepThree параметр props: ['range'].
    Ответ написан
    1 комментарий
  • Поиск постоянной удаленной работы?

    Moon_Lobster
    @Moon_Lobster
    Инвестор
    Советую помимо выше сказанного не откидывать профиль в Linkedin. Прокачивайте профиль,заводите контакты (втупую связываясь с теми кто вам приглянулся). Тоже может быть действенным вариантом.
    Ответ написан
    1 комментарий