Работаю удалённо.
Контакты
Местоположение
Россия, Пермский край, Пермь

Достижения

Все достижения (19)

Наибольший вклад в теги

Все теги (66)

Лучшие ответы пользователя

Все ответы (41)
  • Как написать большое приложение на Vue.js и не умереть?

    @ber_enot Автор вопроса
    Веб-разработчик, Vue.js / Node.js
    Спасибо всем ответившим!

    Нашел решение.
    Проблема была в конфигурации vue.config.js (использую vue-cli 3).

    Для глобальных переменных и миксинов SASS (SCSS) использовал плагин style-resources-loader.

    pluginOptions: {
        'style-resources-loader': {
          preProcessor: 'scss',
          patterns: [
            path.resolve(__dirname, 'src/scss/_variables.scss'),
            path.resolve(__dirname, 'src/scss/_mixins.scss'),
          ],
        }
      },


    Именно из-за него сборка занимала много времени. Изменение одной буквы в HTML-коде компонента приводило к пересборке всех компонентов, использующих SCSS.

    Решение проблемы:
    1. npm remove style-resources-loader
    2. удаление из конфига кода (см. выше)
    3. добавление в конфиг кода:
    css: {
        loaderOptions: {
          sass: {
            data: `
              @import "@/scss/_variables.scss";
              @import "@/scss/_mixins.scss";
            `,
          }
        }
      },


    Результат:
    DONE Compiled successfully in 1704ms 15:06:07
    App running at:
    - Local: localhost:8080
    Ответ написан
    Комментировать
  • Как в VUE JS сделать так чтоб при входе на сайт отображался только preloader пока все процессы не завершились?

    @ber_enot
    Веб-разработчик, Vue.js / Node.js
    В событие компонента mounted()
    добавить показ прелоадера, запустить методы загрузки данных
    убрать прелоадер, когда они завершатся (с помощью Promise.all)
    Читать про промисы тут - https://learn.javascript.ru/promise

    Примеры:
    один запрос:
    mounted() {
    	this.showPreloader = true
    	this.$http.get('/someUrl').then(response => {
    		// данные загружены, убираем прелоадер
    		this.showPreloader = false
    		// записываем полученные данные куда-либо
    		this.someData = response.body
    	}, response => {
    		// запрос завершился ошибкой
    		// показываем сообщение об ошибке
    		this.showPreloader = false
    		this.showError = true
    	});
    },

    Несколько запросов:
    mounted() {
    	this.showPreloader = true
    	Promise.all([
    		this.$http.get('/someUrl'),
    		this.$http.get('/someUrl2')
    	]).then(results => {
    		// данные загружены, убираем прелоадер
    		this.showPreloader = false
    	}, response => {
    		// один или несколько запросов завершились с ошибкой
    		// показываем сообщение об ошибке
    		this.showPreloader = false
    		this.showError = true
    	});
    },


    PS. Код справедлив для однофайловых компонентов с использованием Webpack. Используется синтаксис ES6.
    Ответ написан
    3 комментария
  • Картинки и vue.js?

    @ber_enot
    Веб-разработчик, Vue.js / Node.js
    <img :src="item.photo" />

    Require не нужен. Работайте с адресом картинки как с обычной строкой.
    Ответ написан
    3 комментария
  • Карта мира с детализацией до города и привязкой своих меток?

    @ber_enot
    Веб-разработчик, Vue.js / Node.js
    Посмотрите на библиотеки:
    Leaflet
    OpenLayers

    Источник карт можно задать самому (Яндекс.Карты, Google Maps, OSM и любые другие).
    На карту можно добавлять метки, полигоны, попапы и вообще всё, что душе угодно.

    PS. Работал с обеими библиотеками, по своему опыту рекомендую Leaflet - меньше кода и в целом понятнее.
    Ответ написан
    1 комментарий
  • Как использовать движки при написании сайта?

    @ber_enot
    Веб-разработчик, Vue.js / Node.js
    1. Можно взять готовый движок с необходимым функционалом, дописать к нему модуль и получить сайт.
    2. Можно использовать фреймворки, которые дают только "основу" движка, без бизнес-логики.
    3. Можно написать всё с нуля.

    Трудозатраты сравните сами.
    1 - готовый дом, нужно построить только "удобства"
    2 - только фундамент
    3 - пустой земельный участок

    Движки, как правило, распространяются по определенной лицензии, и изменять разрешается далеко не все движки. Поэтому в качестве примера привел написание модуля.
    Ответ написан
    3 комментария

Лучшие вопросы пользователя

Все вопросы (56)