Ответы пользователя по тегу Vue.js
  • Как сделать правильную умную кнопку Назад в VueJS?

    alvvi
    @alvvi
    export default apathy;
    Так хорошо, вроде бы все классно. Теперь проблема с прямым переходом по ссылке в запись решена, только вот появляется другая проблема. Позиционирование скролла. При переходе go(-1) у нас сохраняются все записи которые были загружены в список, а при переходе to="/posts" компонент заново загружает записи и позиционируется вверху. Ну ладно, позиционирование, компонент просто еще раз начинает загружать данные.

    Тут не понятно о каком позициноирование и загрузке идет речь, если у вас рендеринг различается при переходе на экран с постами через /posts и через router.go(-1) - это проблема другого характера и решать ее нужно вне этого вопроса. Различаться он может только отсутствием подгрузки во втором варианте, если вы не кэшируете данные и это нормально.
    Проблема третья. Если, допустим, мы перешли в запись не с общего списка, а с предложенных новостей в каком то другом посте блога, то кнопка "назад" должна все-таки вести назад на предыдущую запись, а не в общий список.

    Пишите в Store название роута куда нужно ридеректить при нажатии на Назад, на beforeRouteLeave экрана с предложенными новостями - меняете на другой роут.
    Вроде-бы это как то реализуется через Хуки роутов, но к сожалению у меня нет такого опыта работы с ними.

    В документации есть более чем подробная информация о всех хуках, читайте, пробуйте, получайте опыт.
    Ответ написан
    Комментировать
  • Как показывать уведомления из Vuex?

    alvvi
    @alvvi
    export default apathy;
    Так вы какие уведомления хотите? На уровне приложения или на уровне одного компонента? Если на уровне приложения, то естественно логика должна быть завязана на store. Если на уровне компонента, возвращайте промис.
    Не знаю как vue-resources, с обычными промисами никаких проблем не возникает.

    export default new Vuex.Store({
        actions: {
            load_current_user (context, {}) {
               // Помните что .then возвращает именно промис
               return axios.get('/api/users/me/')
                 .then(response => {
                    context.commit('set_current_user', response.body)
                 })
          },
        }
    })


    // В компоненте
    this.$store.dispatch('load_current_user', {}).catch(e => {
      // Что-то пошло не так. Надо уведомить пользователя об этом.
    })
    Ответ написан
    Комментировать
  • Как работать с очень длинными списками в JavaScript (angular, react, vuejs)?

    alvvi
    @alvvi
    export default apathy;
    (angular не использует vdom, для него история другая)
    перерисует целиком свой виртуальный dom

    Давайте немного проясним: виртуальный DOM - это грубо говоря js объект содержащий другие объекты.
    При добавлении нового сообщения туда добавится новый объект и весь DOM сравнится со старой версией с помощью diff-алгоритма специфичного для конкретного фреймворка.
    И только результат этого сравнения добавится в реальный DOM.
    Работа с объектом значительно быстрее работы с самим DOM-ом, поэтому чтобы оно начало работать заметно медленее у вас должен быть дикий уровень вложенности или очень большой DOM.

    100 сообщений и 50 контактов - это небольшие цифры, с таким любой из упомянутых фреймворков справится без просадок.

    Вот пример бенчмарков с большим количеством объектов(1000+) для многих фреймворков на примере незамысловатой таблицы:
    www.stefankrause.net/js-frameworks-benchmark6/webd...
    (там же есть ссылка на репо чтобы увидеть как она выглядит)
    Как видите, там в таблицу уже содержащую 10 000 добавляется еще 1000(!) объектов, и многие фреймворки впонле с этим справляются.

    В реальности же, вам вряд-ли придется добавлять такие цифры, потому что подгружают изначально обычно меньшее количество: такое, которое пользователь сможет увидеть в одном экране, все остальное догружается постепенно по мере надобности. То же самое касается вашей истории чата, ее стоит подгружать только за тот период, за который она необходима пользвателю.
    Ответ написан
    1 комментарий
  • Как в URL добавить slug?

    alvvi
    @alvvi
    export default apathy;
    axios.get(`http://asdasd/post/${slug}`)
    Ответ написан
  • Как сделать универсальный компонент, если при подключении к разным страницами используются разные данные?

    alvvi
    @alvvi
    export default apathy;
    Не совсем понятно, зачем вам разные названия свойств, но в целом ничто не мешает сделать их динамическими
    let type = 'goods'; // Здесь можно получить строку из страницы любым удобным способом
    this[type] = this[type].concat(data.data.data)
    Ответ написан
  • Как привязать чекбокс к текстовому полю?

    alvvi
    @alvvi
    export default apathy;
    https://forum.vuejs.org/t/v-model-with-dynamically...

    you could pass an extra index parameter in v-for, like v-for=(param, index) in parameters. Then you could add the index to you v-model binding, like this: v-model="inputParams[index]'. I think that should work.
    Ответ написан
    Комментировать
  • Что лучше изучать для использования с Laravel, React.js или Vue.js?

    alvvi
    @alvvi
    export default apathy;
    А хорошо ли интегрируется React.js с PHP фреймворком Laravel?
    И если да, то насколько ?

    Так же как с любым другим PHP фреймоврокм, нормально.

    Vue.js умеет все тоже самое что и React.js ?

    Да

    А в чем особенность React.js и Vue.js ?

    В доках обоих фреймворков прекрасно все описано.

    Когда я увидел чарты (график) производительности React.js я офигел ! Он очень мощный!
    А если использовать React.js с Laravel будут такие же результаты?

    Можете показать пальцем на того человека, который убедил вас что производительность фронтенд фреймворка может быть прямо связана с бекенд фреймворком? Палкой хочу ударить просто.

    И прошу вас или объяснить или же оставить ссылку про то, как же все таки происходит интеграция между двумя сторонами на том фреймворке (React or Vue) который предпочитаете.

    REST/GraphQL API, 1000 раз спрашивали уже

    Добавлю, что я знаю ES6, уже писал на Koa используя async/await, у меня достаточно хороший опыт/практика в разработке на NODE.JS.

    Тогда забудьте про PHP и его фреймворки. Зачем они вам, если REST для SPA прекрасно пишется на ноде?

    Прошу вас отвечать поподробнее на вопросы.

    Я бы может и ответил, если бы вы задали не самый банальный список вопросов в мире.
    Ответ написан
    Комментировать
  • Как позволить пользователю отправить форму на нужный ему url?

    alvvi
    @alvvi
    export default apathy;
    Если вы уже забиндили инпут на свойство инстанса, то что мешает просто подставить его в методе который обрабатывает отправку:
    const url = `http://toster.ru/${this.userUrl}`;
    $.ajax({
      url,
      // ... все остальное
    })

    Если же у вас проблемы с чем-то более фундаметнальным, то документация в помощь.
    Ответ написан
    6 комментариев
  • Как в методе компонента получить переданные данные?

    alvvi
    @alvvi
    export default apathy;
    Vue.component('my-component', {
      props: ['myMessage'],
      template: '<span>{{ myMessage }}</span>',
      created() {
        console.log(this.myMessage);  
      }
    })
    Ответ написан
    Комментировать
  • 2 способа писать @media-query используя Sass в компонентах Vue.js?

    alvvi
    @alvvi
    export default apathy;
    Если честно, не понимаю в чем приемущества первого варианта, для меня он неудобен и менее логичен чем использование вложенности. Среди доводов ваших верстальщков не нашел каких-то критических, если использовать БЭМ вложенности в любом случае не уходит дальше двух уровней, да и читабельность даже при 4 уровнях вполне нормальная, если на наполнять код костылями и излишне сложными селекторами.
    Ответ написан
    Комментировать
  • Каким образом работает рендеринг в Vue.js и Angular?

    alvvi
    @alvvi
    export default apathy;
    Vue тоже использует Virtual DOM.
    А вот что делает Angular

    Angular uses a different strategy. We keep track of the old values for every binding to the view, and so we can detect which pieces of the view changed and update them in the real DOM.
    Virtual DOM diffs the view, angular diffs the model.
    From a performance standpoint neither approach is strictly better than the other. There are certain scenarios in which either approach has a slight advantage.
    Ответ написан
    8 комментариев
  • NativeScript - что это?

    alvvi
    @alvvi
    export default apathy;
    Ну там ведь прям в заголовке написано, нет?
    https://www.nativescript.org/
    Ответ написан
    6 комментариев
  • Как работает Webpack и Vue.js?

    alvvi
    @alvvi
    export default apathy;
    Возникает вопрос: как?

    Webpack-dev-server просто раздал вам статический index.html и bundle.js со всем vue-приложением внутри
    Любой хостинг способный раздавать статические файлы пойдет

    Если же вы хотите знать, как работает сервер в целом, то это к Webpack'у и уж тем более Vue имеет весьма посредственное отношение.
    Ответ написан
    3 комментария