@vuejs_ru
Vue.js — русскоговорящее сообщество

Общаемся на темы, посвященные Vue.js и опыту его использования. Проблемы. Новости. Решения. См. также: @js_ru, @react_js, @angular_ru, @nuxtjs_ru Вакансии только тут: @javascript_jobs

3988 members

Архив канала @vuejs_ru 5 февраля 2017 г.

07:46:20 ДП
User 143326616
Так, ещё одна странная бага. Как я уже говорил, используем шаблоны для компонентов из <script type="text/x-template">. Да, я в курсах, что так не рекомендуется, но сборку прикручивать некогда. Как только мы инитим компоненты, содержимое этих тегов удаяется, точнее теги и прочие HTML элементы заменяется на пробелы, в воздухе остаётся весеть текст. Например, вот так:
                
               
                   ID


Ну и при переходе на другую страницу он опять пытается распорсить шаблон и кидает ошибку о невальдном коде. Как быть и ЧТЯДНТ?
07:56:34 ДП
User 60331718
при переходе с одной страницы на другую (router) у компонентов странички, с которй уходим что-нибудь вызывается?
07:57:04 ДП
User 60331718
beforeDestroy?
08:14:06 ДП
User 152816933
у роутера есть хуки. В доке описано.
08:57:54 ДП
09:17:49 ДП
User 1844260
гофера нет в паке
09:19:36 ДП
User 143326616
User 60331718
при переходе с одной страницы на другую (router) у компонентов странички, с которй уходим что-нибудь вызывается?
Да, хотя и не должен же вроде компонент разрушаться.
09:23:21 ДП
User 60331718
User 143326616
Да, хотя и не должен же вроде компонент разрушаться.
действтельно вызывается, а как тогда кешировать компоненту?
09:23:43 ДП
User 60331718
в доках что-то не видно, есть только keep-alive но он для динамических компонент
09:23:58 ДП
User 143326616
Прикол в том, что зашли мы на страницу по пути '/a'. В JS задали роуты для '/a' : componentA и '/b' : componentB. Компоненты созданны через Vue.component(), в VueRouter переданны. Но когда мы переходим на '/b' он опять пытается вытащить шаблон из тега. А там, как мы помним, пусто.
09:24:36 ДП
User 143326616
Есть идея поменять script на div и тупо вытягивать через document.getElementById(), но это так себе решение.
09:25:11 ДП
User 60331718
User 152816933
у роутера есть хуки. В доке описано.
beforeRouteLeave не срабатывает
09:25:44 ДП
User 60331718
User 143326616
Прикол в том, что зашли мы на страницу по пути '/a'. В JS задали роуты для '/a' : componentA и '/b' : componentB. Компоненты созданны через Vue.component(), в VueRouter переданны. Но когда мы переходим на '/b' он опять пытается вытащить шаблон из тега. А там, как мы помним, пусто.
хорошо бы код увидеть
09:36:09 ДП
User 282857241
Просвятите, что за гофер?
09:36:09 ДП
User 282857241
гофера нет в паке
09:40:28 ДП
User 112715267
Вебпак топчик
09:40:29 ДП
User 112715267
Первый раз собрал вебпаком крупный фронт
09:40:33 ДП
User 112715267
Прям хорошо
09:41:59 ДП
User 143326616
User 112715267
Вебпак топчик
А мне вот gulp приходится юзать
09:42:04 ДП
09:44:05 ДП
User 112715267
npm i vue-webpack-boilerplate
vue init wepback project
cd project
npm i
npm run dev
2EZ4RTZ
09:44:17 ДП
User 112715267
Потом просто
npm run build
и все собралось
09:44:26 ДП
User 112715267
Даже не менял ничего в конфигах)
09:44:32 ДП
User 143326616
User 60331718
хорошо бы код увидеть
Так, проблема опять решилась в ходе подготовки примера. Теги script с шаблонами попали в область видимости корневого Vue инстанса. До 2.10 вроде бы и так работало, а теперь он их зачем-то распрасил.
09:45:23 ДП
User 112715267
Там даже тесты есть для тех, кто прется по ним
09:47:17 ДП
User 175310
какую-то готовую сборку использовал?
10:01:12 ДП
User 112715267
https://github.com/funkyLover/vue-spa
Вот хорошая
github.com/funkyLover/vue-spa
vue-spa - A full-featured Webpack + vue-loader setup with hot reload, linting, testing & css extraction.
10:01:48 ДП
User 112715267
Там и Vuex, и vue-router, и vue-resource из коробки
Даже пример рабочий ставится
10:03:30 ДП
User 152816933
User 60331718
beforeRouteLeave не срабатывает
все срабатывает https://jsfiddle.net/oxtrhusd/
jsfiddle.net/oxtrhusd
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
10:04:55 ДП
User 60331718
User 152816933
все срабатывает https://jsfiddle.net/oxtrhusd/
jsfiddle.net/oxtrhusd
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
странно, у меня не работало
10:05:04 ДП
10:05:39 ДП
User 60331718
на да хрен сним, я в beforeDestroy поместил и норм
10:05:47 ДП
User 60331718
но да, надо будет разобраться потом, что и почему
10:07:25 ДП
User 152816933
я бы задумался... Вдруг где-то ошибку сделал.
10:09:24 ДП
User 316815804
Не поможете? Есть сервер на express.js, посылаю через fetch запросы на api, всё нормально, но когда хочу загрузить инвентарь человека и делаю на серверной часте запрос на апи другого сервиса, в консоли вылазит ошибка. Response.stauts равняется нулю, если зайду на /api/getMyInventory, ошибок нет, а потом обратно, то всё загружается
10:12:19 ДП
User 112715267
А в чем прикол, beforeCreate срабатывает раньше, чем routerBeforeEach??
10:13:38 ДП
User 112715267
Надо бы Lifecycle Diagram дополнить хуками роутера
10:16:45 ДП
User 152816933
beforeCreate - хук компонета?
10:19:35 ДП
User 152816933
на сайт русского перевода еще не влили  beforeRouteUpdate :\
10:19:58 ДП
User 231279921
Привет всем,есть тут кто из Одессы?
11:22:26 ДП
User 234601456
Народ, вопрос, скорее всего, стандартный из серии передать пропсы в компоненты. Прошу пардону, три дня как разбираюсь в vue.
Собственно три файла, в майне я подключаю компоненту footer.vue и передаю пропс:
import Footer from './view/footer.vue'

new Vue({
  data: {
     ver : version,
  },
  props: ['textVersion'],
  components:{
       'app-footer' : Footer
  },
  router 
}).$mount('#app');

В index.html, я пропс передаю в компоненту:
<app-footer :text-version="ver"></app-footer>

В footer.vue принимаю пропс:
<span id="foot__version">{{ textVersion }}}</span>

Ошибка:  Property or method "textVersion" is not defined on the instance but referenced during render.
Помогите разобраться чо делаю не так...
11:26:47 ДП
User 169564810
Yaroslav покажи footer полностью
11:26:55 ДП
User 184398046
props: ['textVersion']
нужноуказать не в app, а в
footer.vue
11:26:55 ДП
User 169564810
ты свойство props прописал?
11:27:17 ДП
User 169564810
@gmtyllo ух-ты, вот это ты внимательный
11:27:40 ДП
User 316815804
Помогите, как после v-for сгенерированного поменять значения, что бы они отобразились на странице. А то после рендера не могу поменять, ничего не происходит
11:28:26 ДП
User 184398046
как меняешь то?
11:28:47 ДП
User 234601456
Понял, в footer у меня просто template
<template>
<footer class="footer">
<span id="foot__version">{{ textVersion }}</span>
</footer>
</template>
11:28:49 ДП
User 316815804
this.items = data.items
11:29:35 ДП
User 234601456
А в app тогда ничего не указывать??
11:30:28 ДП
User 184398046
В App у тебя уже в data указано. А свойство prop - эт для свойств от родителя
11:32:07 ДП
User 234601456
Всё, политело. Гранд сенкЪю. Левым глазом читаю мануал, видать..
11:38:47 ДП
User 234601456
Ну и коль пошла такая пьянка... вопрос из семантики. Концепция vue такая что наверх компонентам летят пропсы, а вниз спускаются методы.
Класический вариант. Есть хедер в нем форма с импутом для поиска. Есть острое желание прям из компоненты, гетом посылать запрос и результат парсить в ссылки роутера. 
Но православненько ли это с точки зрения семантики?
Или перенаправлять данные с импута через this.$emit в app
11:39:12 ДП
User 110402941
как добавить условие сюда:
v-if="comment.bid_id == sc.id && comment.sity == fltr.sity"
если fltr.sity == '' то comment.sity == fltr.sity пропустить
11:45:37 ДП
User 123572200
User 234601456
Ну и коль пошла такая пьянка... вопрос из семантики. Концепция vue такая что наверх компонентам летят пропсы, а вниз спускаются методы.
Класический вариант. Есть хедер в нем форма с импутом для поиска. Есть острое желание прям из компоненты, гетом посылать запрос и результат парсить в ссылки роутера. 
Но православненько ли это с точки зрения семантики?
Или перенаправлять данные с импута через this.$emit в app
Я так и делаю,  использую динамические роуты,  выгребаю категории пробегаюсь по ним формирую ссылки с айди,  этот айди потом учавствует в запросе в компоненте товары
11:48:33 ДП
User 110402941
пытаюсь что то типа
v-if="comment.bid_id == sc.id && fltr.sity != '':comment.sity == fltr.sity"
12:00:31 ПП
User 184398046
User 110402941
пытаюсь что то типа
v-if="comment.bid_id == sc.id && fltr.sity != '':comment.sity == fltr.sity"
Ангулар болезнь? Ну зачем нетривиальную логику писать в шаблоне? Сделай компьютед проперти. А там хоть какой говнокод пиши...
P.S. вначале проверяй на !!fltr.sity
P.P.S. тебе не режит
sity
?
12:01:39 ПП
User 110402941
User 184398046
Ангулар болезнь? Ну зачем нетривиальную логику писать в шаблоне? Сделай компьютед проперти. А там хоть какой говнокод пиши...
P.S. вначале проверяй на !!fltr.sity
P.P.S. тебе не режит
sity
?
<a v-for="comment in comments" v-if="comment.bid_id == sc.id && !!fltr.sity: comment.sity == fltr.sity"
12:01:42 ПП
User 110402941
вот так что ли
12:02:32 ПП
User 110402941
режет, мне надо сначало сделать что бы работало
12:02:35 ПП
User 184398046
зачем двоеточие?
12:02:37 ПП
User 110402941
а потом поправлю
12:03:24 ПП
User 110402941
User 184398046
зачем двоеточие?
посмотрел в документации подобное условие в классах
12:03:56 ПП
User 184398046
покажи ссылку
12:04:55 ПП
User 110402941
https://ru.vuejs.org/v2/guide/class-and-style.html#Использование-объектов
ru.vuejs.org/v2/guide/class-and-style.html
Vue.js — Прогрессивный JavaScript-фреймворк
12:05:32 ПП
User 112715267
Я не понимаю, в чем прикол
У меня в инстансе async beforeCreate, который делает запрос к серверу авторизован/нет и помещает во Vuex true/false
В routeBeforeEnter у меня чекается из vuex, авторизован или нет, но какого-то хрена всегда не авторизован
12:05:59 ПП
User 112715267
Точнее, при загрузке всегда не авторизован, а если перейти на другую страницу, то срабатывает
12:07:50 ПП
User 184398046
User 110402941
https://ru.vuejs.org/v2/guide/class-and-style.html#Использование-объектов
ru.vuejs.org/v2/guide/class-and-style.html
Vue.js — Прогрессивный JavaScript-фреймворк
так ведь.... ээээ.... ты читай документацию, поймешь о чем речь в директиве класса делается. В директиве if только expression или property
12:08:26 ПП
User 110402941
User 184398046
так ведь.... ээээ.... ты читай документацию, поймешь о чем речь в директиве класса делается. В директиве if только expression или property
хорошо, как бы ты написал?
12:09:14 ПП
User 110402941
если fltr.sity не равен '' то comment.sity == fltr.sity
12:09:16 ПП
User 184398046
если fltr.sity == '' то comment.sity == fltr.sity пропустить
это о чем? пропустит - что означает?
12:13:05 ПП
User 184398046
Все равно не понимаю что тебе нужно от условия. опиши как в школе делали
12:17:27 ПП
User 184398046
не мучай шаблон, вынеси в methods
<a v-for="comment in comments" v-if="canView(comment)">

methods: {
  canView(comment) {
    if (this.fltr.sity === '') return false
    return comment.bid_id == this.sc.id && comment.sity == this.fltr.sity
  }
}
12:19:15 ПП
User 110402941
<select v-model="fltr.city" class="form-control">
<option></option>
 <option value='1'>1</option>
 <option value='2'>2</option>....

теперь надо фильтровать комментарии по городу

<a v-for="comment in comments" v-if="comment.bid_id == sc.id &&  comment.city == fltr.city"

вот только если фильтр по городу не выбран то показывать все
12:20:47 ПП
User 110402941
а получаектся что если фильтр не выбран то не покажет ничего
12:22:49 ПП
User 184398046
вроде даже в доке написано. Не городи такие условия. сделай computed проперти, возвращающий отфильтрованные города
12:23:53 ПП
User 110402941
дай ссылку
12:24:41 ПП
User 184398046
Но теперь логику понял. условие v-if="!ltr.city || ... тут все твое необычное условие"
12:27:40 ПП
User 184398046
https://vuejs.org/v2/guide/list.html#Displaying-Filtered-Sorted-Results
vuejs.org/v2/guide/list.html
Vue.js - The Progressive JavaScript Framework
12:32:05 ПП
User 65484181
User 112715267
Я не понимаю, в чем прикол
У меня в инстансе async beforeCreate, который делает запрос к серверу авторизован/нет и помещает во Vuex true/false
В routeBeforeEnter у меня чекается из vuex, авторизован или нет, но какого-то хрена всегда не авторизован
а ответ успевает за это время прийти?
12:32:20 ПП
User 112715267
User 65484181
а ответ успевает за это время прийти?
Так там же async/await, он должен ждать
12:32:29 ПП
User 112715267
В том и прикол, что не успевает
12:33:13 ПП
User 133750577
User 112715267
Так там же async/await, он должен ждать
Кинь код
12:40:43 ПП
User 110402941
User 184398046
Но теперь логику понял. условие v-if="!ltr.city || ... тут все твое необычное условие"
Спасибо, теперь допёр, всё работает!!!
01:00:29 ПП
User 1844260
люди, а у кого-то извлечение sass css (с lang="sass") из *.vue работает? собираю webpack2
01:02:40 ПП
User 40595124
User 1844260
люди, а у кого-то извлечение sass css (с lang="sass") из *.vue работает? собираю webpack2
У меня.
01:02:59 ПП
User 40595124
Конфиг запостить?
01:03:18 ПП
User 1844260
User 40595124
У меня.
можно webpack.config.js?
01:03:39 ПП
User 40595124
const frontendConfig = {
    name: 'scnetw-frontend',
    target: 'web',
    entry: [
        path.join(__dirname, 'frontend', 'styles', 'main.scss'),
        'bootstrap-loader',
        path.join(__dirname, 'frontend', 'main.js'),
    ],
    output: {
        path: path.join(__dirname, 'frontend', 'public', 'build'),
        filename: 'bundle.js',
    },
    resolve: {
        alias: {
            'vue$': 'vue/dist/vue.common.js',
        },
    },
    devtool: 'source-map',
    module: {
        loaders: [
            {
                test: /.js$/,
                loader: 'babel-loader',
                exclude: /node_modules/,
            },
            {
                test: /\.vue$/,
                loader: 'vue-loader',
            },
            {
                test: /\.scss$/,
                loader: ExtractTextPlugin.extract(['css-loader', 'sass-loader']),
            },
            {
                test: /\.(jpg|jpeg|png|gif|woff|woff2|eot|ttf|svg)(.*)$/,
                loader: 'url-loader?limit=10000',
            },
            {
                test: /bootstrap\/dist\/js\/umd\//,
                loader: 'imports-loader?jQuery=jquery',
            },
        ],
    },
    plugins: [
        new ExtractTextPlugin('bundle.css'),
        new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery: 'jquery',
            'window.jQuery': 'jquery',
        }),
    ],
};
01:05:08 ПП
User 1844260
а sass у тебя внутри *.vue файла?
01:05:42 ПП
User 40595124
User 1844260
а sass у тебя внутри *.vue файла?
Конечно.
01:06:11 ПП
User 1844260
я просто какой то такой конфиг наблюдаю в доках
01:06:12 ПП
User 40595124
<template>

</template>

<script>

</script>

<style lang="sass" rel="stylesheet/scss">

</style>
01:06:20 ПП
User 1844260
        options: {
          loaders: {
            // Since sass-loader (weirdly) has SCSS as its default parse mode, we map
            // the "scss" and "sass" values for the lang attribute to the right configs here.
            // other preprocessors should work out of the box, no loader config like this nessessary.
            'scss': 'vue-style-loader!css-loader!sass-loader',
            'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax',
            'css': ExtractText.extract({
              loader: 'css-loader',
              fallbackLoader: 'vue-style-loader'
            })
          }
          // other vue-loader options go here
        }
      },
01:06:21 ПП
User 40595124
Вот так организован компонент.
01:06:38 ПП
User 1844260
окей, сейчас твой попробую, спасибо
01:33:26 ПП
User 1844260
User 40595124
Вот так организован компонент.
а у тебя какая версия webpack?
01:38:24 ПП
User 40595124
User 1844260
а у тебя какая версия webpack?
  "devDependencies": {
    "axios": "^0.15.3",
    "babel-core": "^6.22.1",
    "babel-loader": "^6.2.10",
    "babel-plugin-transform-object-rest-spread": "^6.22.0",
    "babel-preset-es2015": "^6.22.0",
    "bootstrap-loader": "^2.0.0-beta.20",
    "bootstrap-sass": "^3.3.7",
    "css-loader": "^0.26.1",
    "extract-text-webpack-plugin": "2",
    "file-loader": "^0.10.0",
    "jquery": "^3.1.1",
    "jwt-decode": "^2.1.0",
    "node-sass": "^4.5.0",
    "nodemon": "^1.11.0",
    "resolve-url-loader": "^1.6.1",
    "sass-loader": "^4.1.1",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.7",
    "vee-validate": "^2.0.0-beta.21",
    "vue": "^2.1.10",
    "vue-loader": "^10.2.0",
    "vue-router": "^2.2.0",
    "vue-template-compiler": "^2.1.10",
    "vuex": "^2.1.1",
    "webpack": "^2.2.1"
  },
  "dependencies": {
    "body-parser": "^1.16.0",
    "boom": "^4.2.0",
    "ejs": "^2.5.5",
    "express": "^4.14.1",
    "helmet": "^3.4.0",
    "jsonwebtoken": "^7.2.1",
    "mysql": "^2.13.0",
    "sequelize": "^3.30.1",
    "sequelize-cli": "^2.5.1"
  },
01:39:03 ПП
User 1844260
User 40595124
  "devDependencies": {
    "axios": "^0.15.3",
    "babel-core": "^6.22.1",
    "babel-loader": "^6.2.10",
    "babel-plugin-transform-object-rest-spread": "^6.22.0",
    "babel-preset-es2015": "^6.22.0",
    "bootstrap-loader": "^2.0.0-beta.20",
    "bootstrap-sass": "^3.3.7",
    "css-loader": "^0.26.1",
    "extract-text-webpack-plugin": "2",
    "file-loader": "^0.10.0",
    "jquery": "^3.1.1",
    "jwt-decode": "^2.1.0",
    "node-sass": "^4.5.0",
    "nodemon": "^1.11.0",
    "resolve-url-loader": "^1.6.1",
    "sass-loader": "^4.1.1",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.7",
    "vee-validate": "^2.0.0-beta.21",
    "vue": "^2.1.10",
    "vue-loader": "^10.2.0",
    "vue-router": "^2.2.0",
    "vue-template-compiler": "^2.1.10",
    "vuex": "^2.1.1",
    "webpack": "^2.2.1"
  },
  "dependencies": {
    "body-parser": "^1.16.0",
    "boom": "^4.2.0",
    "ejs": "^2.5.5",
    "express": "^4.14.1",
    "helmet": "^3.4.0",
    "jsonwebtoken": "^7.2.1",
    "mysql": "^2.13.0",
    "sequelize": "^3.30.1",
    "sequelize-cli": "^2.5.1"
  },
благодарю
01:53:21 ПП
User 75951305
Привет всем)
01:54:26 ПП
User 55423102
привет
01:54:38 ПП
User 75951305
Я недавно начал заниматься с vue
01:55:45 ПП
User 75951305
Читал ваш пост про компоненты, на медиуме.
Вы писали про бмен данными через props.
Я попробовал и у меня что то не получается. Можете помочь?
01:56:50 ПП
User 55423102
Спрашивайте, чем сможем поможем)
01:57:37 ПП
User 75951305
Секунду
02:07:31 ПП
User 75951305
Структура
02:07:32 ПП
User 75951305
Я делаю to-do простенькиий с монгой.
У меня есть 3 компонента: App, TodoList, TodoItem.
Структура примерно такая -
02:08:34 ПП
User 75951305
В компоненте TodoList я из базы по запросу получаю данные и сохраняю в data
02:08:48 ПП
User 123572200
Ребят подскажите, при инициализации нового проекта через vue init webpack, и установке зависимосте, у всех такая ошибка при npm run dev
Error: Cannot find module 'eslint-friendly-formatter'
02:08:51 ПП
02:09:07 ПП
User 75951305
Как мне передать данные от todolist в Item
02:09:17 ПП
User 123572200
Понятно что зависимости нет, но я еслинт неиспользую
02:11:56 ПП
User 40595124
User 75951305
Как мне передать данные от todolist в Item
Ты документацию читал официальную?
02:12:04 ПП
02:12:08 ПП
User 75951305
пропс?
02:13:18 ПП
User 40595124
https://vuejs.org/v2/guide/#Composing-with-Components
vuejs.org/v2/guide
Vue.js - The Progressive JavaScript Framework
02:13:22 ПП
02:13:44 ПП
User 112715267
User 75951305
Я делаю to-do простенькиий с монгой.
У меня есть 3 компонента: App, TodoList, TodoItem.
Структура примерно такая -
А где TodoForm?
02:13:52 ПП
02:15:37 ПП
User 75951305
Что такое TodoForm
02:15:50 ПП
User 112715267
Ну добавлять задачки
02:16:59 ПП
User 55423102
https://ru.vuejs.org/v2/guide/components.html про компоненты и входные параметры в частности лучше почитать сначала
ru.vuejs.org/v2/guide/components.html
Vue.js — Прогрессивный JavaScript-фреймворк
02:25:17 ПП
User 75951305
<div>
  <input v-model="parentMsg">
  <br>
  <child v-bind:my-message="parentMsg"></child>
</div>
02:25:32 ПП
User 75951305
вот оно насколько я понимаю
02:25:52 ПП
User 55423102
да, биндим под каким-то именем в компонент значение parentMsg
02:26:51 ПП
User 9656239
User 282857241
Просвятите, что за гофер?
Зверек символ языка программирования Golang. Сам на нем пишу...
02:30:06 ПП
User 75951305
О, получилось!
02:30:09 ПП
User 75951305
Но не совсем
02:30:31 ПП
User 75951305
Я передал в item компонент список в всех todos
02:30:57 ПП
User 75951305
Это немного неправильно
02:31:11 ПП
User 75951305
Мне нужно по одному todo туда запихнуть
02:31:30 ПП
User 75951305
а то они все в одном todoitem`е
02:35:00 ПП
User 75951305
я или дурак или да
02:35:52 ПП
User 55423102
а это уже в компоненте списка делаете v-for по списку и каждый элемент списка биндите в другой компонент элемента списка
02:37:23 ПП
User 112715267
вообще, чтобы ничего не передавать, vuex надо :)
02:37:35 ПП
User 112715267
но если нужно, чтобы компонент был независимым, тогда да
02:38:03 ПП
User 55423102
да ну, простая тудушка, а уже Vuex впилить хотите
02:38:11 ПП
User 55423102
если с Vuex разобраться хочется, то да
02:38:30 ПП
User 75951305
User 55423102
а это уже в компоненте списка делаете v-for по списку и каждый элемент списка биндите в другой компонент элемента списка
Я так и делал, только не биндил каждый item
02:38:35 ПП
User 75951305
Спасибо
02:38:43 ПП
User 75951305
Разобрался
02:39:35 ПП
User 112715267
User 55423102
да ну, простая тудушка, а уже Vuex впилить хотите
я в свою сразу впилил)
02:39:48 ПП
User 112715267
Более того, я еще все это дело на электроне писал))
02:40:01 ПП
User 112715267
И монго тоже подключал
02:40:34 ПП
User 55423102
Ну а если практики ещё почти никакой, то подключать кучу других технологий никак не поможет разобраться в основной) во vue в данном случае)
02:41:20 ПП
User 75951305
Я не хочу сразу много учить, мне сложновато
02:42:16 ПП
User 75951305
Я с вебпаком чуток разобрался, babel + eslint + express + vue
02:42:40 ПП
User 75951305
Еще что то сверху это будет много
02:42:56 ПП
User 75951305
надо еще es2015/es6 учить
02:43:08 ПП
User 75951305
я только недавно начал)
02:46:56 ПП
User 182928241
User 60331718
дермище, нигде такой отвратности не встречал
Учи JavaScript, приготся. Не зная JS сложно писать на JS
02:50:39 ПП
User 60331718
User 182928241
Учи JavaScript, приготся. Не зная JS сложно писать на JS
Учу на практике, тогда довольно много узнал кстати
02:50:46 ПП
User 182928241
Херово учишь
02:51:31 ПП
User 182928241
Вот когда научишься отличать объект от ссылки на объект, будет намного проще
02:56:00 ПП
User 75951305
А чтобы список перередеривался при добавлении в базу что нужно?
02:56:08 ПП
User 75951305
updated: function() {
     this.getTodos()
  }
02:56:20 ПП
02:59:15 ПП
User 55423102
Смотря что происходит при добавлении в базу
02:59:27 ПП
User 55423102
если возвращается целый новый массив, просто заменяем им текущий
02:59:36 ПП
02:59:39 ПП
User 55423102
если какой-то новый элемент, то можем сделать push в массив
03:02:02 ПП
User 152816933
Если ты изменишь данные (допустим, твой массив), которые у тебя храняться в data, Vue это заметит и сам перерисует компонент.
03:02:17 ПП
User 75951305
При добавлении у меня возвращается то что добавили
03:03:47 ПП
User 152816933
Ну вот, и запихивай его в массив, как выше предложил Alex
03:03:50 ПП
User 60331718
User 182928241
Вот когда научишься отличать объект от ссылки на объект, будет намного проще
ппц ты раскудахтался, я не знал тогда, что там используется для сравнения === в плюсах можно вообще было передать функцию сравнения
03:04:12 ПП
User 182928241
Но ты говоришь, что язык фигня, не зная, как он устроен
03:04:21 ПП
User 182928241
И говоришь, что я "раскудахтался"
03:04:47 ПП
User 60331718
User 182928241
Но ты говоришь, что язык фигня, не зная, как он устроен
ой все, я пожалуй сольюсь в этом споре, потому что нового я ничего не узнаю
03:05:13 ПП
User 182928241
У тебя позиция: "Я все знаю, но JS не знаю. Значит JS плохой"
03:07:47 ПП
User 136935602
Ух набрасыватели :)
03:08:00 ПП
User 182928241
Да, без этого жизнь скучна 😉
03:08:18 ПП
User 136935602
JS объективно плохой язык. Но это не оправдание чтобы не разбираться как это работает
03:09:34 ПП
User 134877905
Учити Python он простой :)
03:09:36 ПП
User 182928241
После Си JS кажется раем. И все изьяны фичами 😉
03:09:46 ПП
User 136935602
Такое
03:09:49 ПП
User 136935602
Си простой
03:09:54 ПП
User 136935602
Вот с++ это ад
03:09:59 ПП
User 182928241
Да, он простой, в этом и прикол
03:22:31 ПП
User 75951305
А как связать два соседних компонента
03:23:04 ПП
User 152816933
Что значит "связать"?
03:24:11 ПП
User 75951305
Данные из А -> Б
03:24:30 ПП
User 75951305
У меня компонент с инпутом и компонент со списком
03:24:31 ПП
User 152816933
https://ru.vuejs.org/v2/guide/components.html#Коммуникация-между-компонентами-не-связанными-иерархически
ru.vuejs.org/v2/guide/components.html
Vue.js — Прогрессивный JavaScript-фреймворк
03:25:40 ПП
User 75951305
Проглядел, спасибо
03:57:25 ПП
User 75951305
Еще вопрос по пушу в массив добавленного туду
03:57:45 ПП
User 75951305
Я его пушу только с параметром content
03:58:04 ПП
User 75951305
а как пушить еще и id которое делает монга
03:59:51 ПП
User 55423102
Стоит сделать так, чтобы возвращался уже готовый объект такой же структуры
03:59:54 ПП
User 55423102
со всем нужным
04:02:20 ПП
User 75951305
Вот что мне возвращает сервер
04:02:21 ПП
User 75951305
{
  "status": "OK",
  "todo": {
    "slug": "todo5323234",
    "_id": "58974c6978fb5852e9683276",
    "modified": "2017-02-05T16:01:45.047Z",
    "state": false,
    "content": "Todo5323234"
  }
}
04:03:18 ПП
User 55423102
как работать с монгой я не подскажу, сам не знаю
04:04:29 ПП
User 75951305
Я понял
04:04:36 ПП
User 75951305
У меня в data
04:04:44 ПП
User 75951305
return {
      todos: {},
      newTodo: ''

    }
04:05:27 ПП
User 75951305
а чтоб работалло надо структуру для newTodo
04:05:48 ПП
User 55423102
а почему todos объект, а не массив
04:07:46 ПП
User 75951305
{
"_id": "58974753578dc84ebe825481",
"slug": "qrkgk3134",
"modified": "2017-02-05T15:40:03.463Z",
"state": false,
"content": "qrkgk3134"
},
{
"_id": "58974750578dc84ebe825480",
"slug": "qwefqwefwqef",
"modified": "2017-02-05T15:40:00.809Z",
"state": false,
"content": "qwefqwefwqef"
},
{
"_id": "5897464a578dc84ebe82547c",
"slug": "qwerweqr",
"modified": "2017-02-05T15:35:38.340Z",
"state": false,
"content": "qwerweqr"
},
04:08:01 ПП
User 75951305
и это все в todos
04:08:12 ПП
User 75951305
можно и массив
04:11:33 ПП
User 316815804
Помогите, как можно поменять стиль блока, при его клике?
04:12:21 ПП
User 55423102
Misha  https://ru.vuejs.org/v2/guide/class-and-style.html#%D0%A1%D0%B2%D1%8F%D0%B7%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-CSS-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2
ru.vuejs.org/v2/guide/class-and-style.html
Vue.js — Прогрессивный JavaScript-фреймворк
04:12:41 ПП
User 55423102
при клике меняешь переменную, в зависимости от которой к примеру тот или иной класс будет подставляться
04:15:00 ПП
User 316815804
А если у меня много одинаковых блоков с одной функцией при клике?
04:16:15 ПП
User 55423102
Непонятно что ты пытаешься сделать и что за блоки и что за функция
04:19:53 ПП
User 9656239
Ребят. Вникаю в Vuex
04:20:36 ПП
User 9656239
Я правильно пониманию что множество эксземпляров Vue на одной странице это нормально?
04:20:59 ПП
User 9656239
И каждый экземляр это что-то вроде веб компонента
04:21:59 ПП
User 9656239
По сколько у вас экземпляров Vue на страницу в в ваших приложениях?
04:33:54 ПП
User 112715267
У меня один экземпляр
04:34:04 ПП
User 112715267
Если речь идет о new Vue(...)
04:34:09 ПП
User 112715267
Компонентов много
04:42:42 ПП
User 9656239
Хм... Да речь о new Vue
05:08:25 ПП
User 112715267
Ну я вебпак использую
05:08:32 ПП
User 112715267
Без вебпака, может, и больше было бы
06:56:24 ПП
User 75951305
Подскажите, как мне забирать id todoitem из базы в компоненте
07:11:42 ПП
User 231279921
Есть проблема: использую vuex  и у меня в стейте хранится массив, когда применяю(в мутации)к этому массиву метод splice он работает не так, как когда применьть splice  к такому же массиву  в переменной?🙃
07:12:20 ПП
User 231279921
В чем проблема может быть?
07:18:02 ПП
User 152816933
User 75951305
Подскажите, как мне забирать id todoitem из базы в компоненте
Если ты рендереришь список с данными из массива, то вот. https://ru.vuejs.org/v2/guide/list.html
Вообще, стоит просто почитать документацию :)
ru.vuejs.org/v2/guide/list.html
Vue.js — Прогрессивный JavaScript-фреймворк
07:18:20 ПП
07:18:30 ПП
User 75951305
У меня mongo
07:19:10 ПП
User 75951305
я нашел как забирать данные которые я на сервере возвращаю при добавлении
07:19:50 ПП
User 75951305
console.log(response.body.todo.slug);
07:24:06 ПП
User 40595124
User 152816933
Если ты рендереришь список с данными из массива, то вот. https://ru.vuejs.org/v2/guide/list.html
Вообще, стоит просто почитать документацию :)
ru.vuejs.org/v2/guide/list.html
Vue.js — Прогрессивный JavaScript-фреймворк
Чел весь день спрашивает какие-то вопросы, которые с Vue вообще не связаны. Или спрашивает то, что есть в доке.
07:24:14 ПП
User 40595124
Как Mongo связана с Vue — ХЗ.
07:24:29 ПП
07:25:08 ПП
User 75951305
Извините(
07:25:11 ПП
User 117901648
ради таких сделали даже ру документацию (правда она дерьмецом попахивает порой)
07:25:16 ПП
User 117901648
но никак.
07:25:52 ПП
User 282857241
Влад, давай по-порядку. Какую конкретно задачу ты решаешь и как планируешь это сделать?
07:26:43 ПП
User 282857241
User 75951305
Подскажите, как мне забирать id todoitem из базы в компоненте
что конкретно не получается?
07:26:58 ПП
User 75951305
Я делаю список задач, с монго
07:27:45 ПП
User 282857241
тебе надо сохранить данные из Mongo в state (VUEX), затем передать их в компонент, желательно в виде props,  там они будут хронится в соответствующей локальной переменной
07:28:30 ПП
User 75951305
User 75951305
Подскажите, как мне забирать id todoitem из базы в компоненте
Тут я спрашивал как при создании задачи пушить в массив не только текст но и id что бы сразу можно было удалять
07:28:34 ПП
User 282857241
используй vue-devtools чтобы увидеть структуру данных и обращайся к ним соответствующим образом в цикле v-for (у тебя же там список?)
07:28:35 ПП
07:28:50 ПП
User 75951305
Я все сделал
07:28:59 ПП
User 75951305
кроме обновления списка после удаления
07:29:07 ПП
User 75951305
и я еще не юзаю vuex
07:29:40 ПП
User 282857241
после удаления чего и где?
07:33:07 ПП
User 75951305
Удаления задачи из списка
07:34:21 ПП
User 112715267
Ребята, никто не хочет помощником побыть некоторое время? 
Нужен человек, знающий JS (фронт на Vue.js) и PHP (самопис)
В общем, нужно переписать с нуля апи нормально и на фронте дописать функционал, который еще не дописан
Я, конечно, все это и сам в состоянии написать, но сроки поджимают, а вдвоем это было бы быстрее
07:34:26 ПП
User 55423102
User 117901648
ради таких сделали даже ру документацию (правда она дерьмецом попахивает порой)
Предложения и пулл-реквесты с правками принимаются)
07:34:59 ПП
User 112715267
По деньгам договоримся, если все пойдет норм
07:35:26 ПП
User 75951305
А почему юзаете PHP, а не ноду?
07:35:56 ПП
User 75951305
Вот моя структура
07:36:41 ПП
User 112715267
User 75951305
А почему юзаете PHP, а не ноду?
Скептически к ней отношусь, если честно
07:42:57 ПП
07:42:57 ПП
07:44:08 ПП
User 112715267
Ну я поюзал, поюзал, и чет забил на нее
07:44:44 ПП
User 75951305
Тут api пишетсся довольно таки просто
07:49:09 ПП
User 112715267
И все же, никого не интересует?
07:49:45 ПП
User 1844260
в воскресенье вечером, умеешь время выбрать для джоб офферов
07:50:01 ПП
User 1844260
hr от Бога просто 👍🏽
07:51:00 ПП
User 75951305
Я тупой
07:51:03 ПП
User 75951305
пока что
07:52:45 ПП
User 202520
User 112715267
Ребята, никто не хочет помощником побыть некоторое время? 
Нужен человек, знающий JS (фронт на Vue.js) и PHP (самопис)
В общем, нужно переписать с нуля апи нормально и на фронте дописать функционал, который еще не дописан
Я, конечно, все это и сам в состоянии написать, но сроки поджимают, а вдвоем это было бы быстрее
ну так а объем API какой? и что дописать требуется?
07:53:34 ПП
User 202520
User 112715267
По деньгам договоримся, если все пойдет норм
не особо радужная перспектива 😂 потом ты скажешь, что ни чего не пошло и человек время в пустую потратил
07:54:19 ПП
User 202520
https://yandex.com/images/search?text=%D0%BF%D0%BE%D0%BF%D0%B0%D1%85%D0%B8%D0%B2%D0%B0%D0%B5%D1%82
07:54:34 ПП
User 75951305
😂😂😂
07:59:40 ПП
User 112715267
Ну не интересно если - не шлите эту херню, пожалуйста
08:00:00 ПП
User 112715267
А по поводу воскресенья - ну сори, так уж вышло
08:02:03 ПП
User 282857241
сроки, объем, гонорар?
08:02:48 ПП
User 1844260
народ, ну вы в личку или на @javascript_jobs, какой смысл тут разводить это все)
08:04:41 ПП
User 282857241
согласен, извиняюсь
08:15:41 ПП
User 85413039
User 112715267
Ребята, никто не хочет помощником побыть некоторое время? 
Нужен человек, знающий JS (фронт на Vue.js) и PHP (самопис)
В общем, нужно переписать с нуля апи нормально и на фронте дописать функционал, который еще не дописан
Я, конечно, все это и сам в состоянии написать, но сроки поджимают, а вдвоем это было бы быстрее
Lumen заюзать для апи
08:16:13 ПП
User 202520
User 85413039
Lumen заюзать для апи
NodeJS. ну или Phalcon если на PHP все же делать.
08:16:39 ПП
User 112715267
Хоть святого духа юзать, нужно только уложиться по срокам
08:17:49 ПП
User 112715267
В принципе, коли бэкэнд переписывать с нуля, можно и на ноде сделать
08:18:58 ПП
User 282857241
а кто как относится к Parse-server? кто-нибудь работал с ним?
08:19:04 ПП
User 282857241
open-source BaaS
08:19:41 ПП
User 112715267
User 282857241
а кто как относится к Parse-server? кто-нибудь работал с ним?
Я по этому поводу уже писал тут, хочу чисто эксперимента ради попробовать написать что-то подобное
08:46:16 ПП
User 136935602
@ofcourseican parse помер
08:49:58 ПП
User 112715267
Parse, кстати, да
08:49:59 ПП
08:51:19 ПП
User 113361293
кто-то использует шаблонизаторы?
08:51:36 ПП
User 113361293
по-моему это дичь лютейшая
08:51:55 ПП
User 113361293
или если я привыкну, то все изменится
08:52:13 ПП
User 282857241
User 136935602
@ofcourseican parse помер
https://github.com/ParsePlatform/parse-server
github.com/parse-community/parse-server
parse-server - Parse-compatible API server module for Node/Express
08:52:23 ПП
User 136935602
он слабенький
08:52:31 ПП
User 136935602
изначально была версия на Go
08:52:32 ПП
User 282857241
в каком плане?
08:52:34 ПП
User 136935602
это жалкий порт на ноду
08:52:39 ПП
User 136935602
по производительности и т.д.
08:52:47 ПП
User 136935602
ну в смысле не советую брать
08:52:56 ПП
08:52:58 ПП
User 112715267
Слушай
08:53:00 ПП
User 112715267
А ты как по занятости
08:53:03 ПП
User 112715267
Работаешь/фрилансишь?
08:53:20 ПП
User 282857241
есть альтернативы? или советуешь писать свой бэкенд?
08:53:29 ПП
User 141310847
па-па-па-па-паааарс.... па-па-па-па-пааааааарс......
08:53:42 ПП
User 141310847
па-па-па-па па-па-па-па па-па-па-пааааа..
08:53:46 ПП
User 141310847
ода парсу
09:09:30 ПП
User 136935602
User 112715267
Работаешь/фрилансишь?
У меня собственная компания :)
09:09:42 ПП
User 112715267
А по времени-то что? :DD
09:09:47 ПП
User 136935602
Заказчики всякие малоизвестные компании типа Microsoft и UN :)
09:10:01 ПП
User 136935602
нет, со мной поработать не выйдет. У меня час слишком дорого стоит :)
09:10:31 ПП
User 282857241
а чем конкретно вы занимаетесь?
09:10:46 ПП
User 136935602
А между тем я дописал штуку, позволяющую использовать redux-saga во vuex
09:10:47 ПП
User 282857241
в смысле, ваша компания
09:10:48 ПП
User 136935602
https://github.com/xanf/vuex-redux-saga
github.com/xanf/vuex-redux-saga
Vuex plugin to use redux-saga in project. Contribute to xanf/vuex-redux-saga development by creating an account on GitHub.
09:10:49 ПП
User 112715267
Дорого это сколько в $ ?
09:11:28 ПП
User 60331718
User 136935602
А между тем я дописал штуку, позволяющую использовать redux-saga во vuex
Таки ты заставляешь гуглить, что за редюкс сага
09:11:42 ПП
User 136935602
User 282857241
а чем конкретно вы занимаетесь?
всем за что деньги платят :) Но в 95% случаях - это какие-то странные и необычные проекты. Последнее что делали большое - это система логистики по доставке гуманитарной помощи для южного судана
09:11:58 ПП
User 136935602
А из "открытых" проектов - http://jambler.com - реалтайм ставки на спорт. Там React + Redux :)
09:12:06 ПП
User 136935602
Дорого это от $50/h
09:12:31 ПП
User 282857241
Давно используете Vue?
09:12:47 ПП
User 136935602
нет, не очень
09:12:54 ПП
User 112715267
Не так уж и дорого на самом деле
Но мой заказчик, конечно, не потянет)
09:12:57 ПП
User 136935602
в коммерческом режиме меньше трех месяцев
09:13:58 ПП
User 282857241
А что вы используете на бэкенде?
09:14:58 ПП
09:15:02 ПП
User 136935602
koa.js / sails.js
09:15:23 ПП
User 136935602
мы только в джаваскрипт умеем )
09:15:34 ПП
09:16:42 ПП
User 112715267
Расскажите, пожалуйста, как вы добились такого успеха
09:17:11 ПП
09:17:28 ПП
User 112715267
А что вы думаете по поводу jQuery?
09:18:21 ПП
User 136935602
User 112715267
Расскажите, пожалуйста, как вы добились такого успеха
никак
09:18:23 ПП
User 113361293
дай угадаю, можно использовать Vue вместо него
09:18:36 ПП
User 136935602
я бы не назвал это успехом
09:18:44 ПП
User 112715267
User 113361293
дай угадаю, можно использовать Vue вместо него
не, он тут как-то писал, что jQuery можно юзать вместо всего, вот и приклеилось)
09:19:49 ПП
User 60331718
Илья, а сколько людей в компании?
09:20:50 ПП
User 136935602
сейчас менее 10
09:20:53 ПП
User 136935602
было до 20
09:31:58 ПП
User 282857241
есть ли профит от использования Node.js в качестве HTTP-сервера для SPA (webpack application)? или проще поставить nginx и не парится? какая-нибудь разница в производительности будет?
09:34:25 ПП
User 202520
User 282857241
есть ли профит от использования Node.js в качестве HTTP-сервера для SPA (webpack application)? или проще поставить nginx и не парится? какая-нибудь разница в производительности будет?
а бэкенд на чем?
09:34:35 ПП
User 282857241
на Node.js
09:34:54 ПП
User 202520
User 282857241
на Node.js
так зачем тебе nginx?
09:35:02 ПП
User 282857241
вот и я о том же подумал
09:37:54 ПП
User 1844260
такие борзые, прям ноду мордой наружу выставляете?
09:38:26 ПП
User 202520
User 1844260
такие борзые, прям ноду мордой наружу выставляете?
а что с ней не так?
09:38:51 ПП
User 282857241
+1 хотелось бы услышать аргументы
09:39:09 ПП
User 1844260
ну пока она скрипты для гранта крутит - все так
09:42:05 ПП
User 136935602
ноду можно безопасно в продакшн тыкать мордой
09:42:28 ПП
User 136935602
но я предпочитаю держать впереди nginx, ибо это дает пространство для масштабирования
09:50:57 ПП
User 139068333
и нода не тормозит при медленных запросах ?
09:51:16 ПП
User 187771704
что такое медлиный запросс?
09:51:33 ПП
User 139068333
это то зачем обычно ставят нжинкс
09:52:34 ПП
User 139068333
это когда по байтику шлют
09:53:55 ПП
User 9656239
User 1844260
такие борзые, прям ноду мордой наружу выставляете?
Не борзые, а небитые еще. Либо они как Неуловимый Джо.
09:54:30 ПП
User 139068333
да какая разница
09:54:53 ПП
User 139068333
нормальные бекендщики у которых есть и орм и фреймворки получают хуй с маслицем
09:55:09 ПП
User 139068333
и за ноды и гошечки платят
09:56:08 ПП
User 9656239
А еще наверное статику нодой офигенно отдавать) Не то что какой-то там nginx. Я бэкэнды на Go пишу и  то не выставляю их никогда "голой жопой" в интернет.
09:57:52 ПП
User 1844260
ну ты че, куда nginx до оптимизированной ноды то
09:59:03 ПП
User 9656239
тут нужен тег сарказм, а то тут люди из фронтенда преимущественно - могут не понять.
09:59:30 ПП
09:59:38 ПП
10:00:28 ПП
User 1844260
вот, кстати, тут же писали про бэкэнд на php. видел, как бэкэнд чатика с php на ноду переписывался
10:00:31 ПП
User 1844260
полгода
10:01:00 ПП
User 1844260
теперь вот sails стартует там по полгода, зато на node
10:01:34 ПП
User 1844260
насмотришься такого и думаешь, что если работает, лучше уж оставить как есть
10:01:42 ПП
User 9656239
А еще на нода никогда память не течет!)
10:03:00 ПП
User 9656239
Кстати нода умеет http/2 уже?
10:03:04 ПП
10:03:16 ПП
User 9656239
Ну уже хорошо
10:03:50 ПП
User 175310
но реализации точно есть
10:03:54 ПП
User 175310
https://github.com/molnarg/node-http2
github.com/molnarg/node-http2
node-http2 - An HTTP/2 client and server implementation for node.js
10:03:57 ПП
User 175310
типа такого
10:04:17 ПП
User 112715267
Кстати, в чем суть http2
10:04:54 ПП
User 9656239
User 112715267
Кстати, в чем суть http2
Не нужно спрайтов и конкатить файлы
10:05:13 ПП
User 9656239
Контент отдается параллельно
10:05:26 ПП
User 9656239
Не нужно никаких cdn
10:06:14 ПП
User 112715267
Чтооо
10:06:24 ПП
User 112715267
Это че за прикол
10:06:29 ПП
User 112715267
Почему я об этом только сейчас услышал
10:07:11 ПП
User 9656239
Я с http/2 добился загрузки страницы за 400мс.
10:07:28 ПП
User 9656239
Правда у меня ДЦ в моем городе
10:07:49 ПП
User 9656239
Загрузка это считая рендеринг DOM полный
10:07:51 ПП
User 1844260
там не в паралельности дело, а в том, что 1 коннект на все
10:08:06 ПП
User 9656239
Ну да, мультиплексирование
10:08:07 ПП
User 1844260
ну и дуплекс, если ты это под параллельностью имел в виду
10:08:19 ПП
10:08:31 ПП
User 136935602
User 139068333
и нода не тормозит при медленных запросах ?
конечно же нет. Оно на асинхронном io как nginx
10:09:01 ПП
User 136935602
User 1844260
теперь вот sails стартует там по полгода, зато на node
рукожопы есть везде
10:09:10 ПП
User 202520
User 9656239
Я с http/2 добился загрузки страницы за 400мс.
в Nginx?
10:09:36 ПП
User 202520
User 9656239
А еще на нода никогда память не течет!)
течет не нода, а ваш код
10:11:20 ПП
User 9656239
User 202520
течет не нода, а ваш код
Если кода много, и либа какая нибудь не своя. Ищи потом где оно там течет. К сожалению в JS очень мало людей которые вообще знают о том что такое утечки памяти
10:12:59 ПП
User 1844260
да даже если и твой только код, зачем дублировать то, что отлично nginx делает
10:13:37 ПП
User 9656239
User 202520
в Nginx?
Бэк на Go, перед ним nginx с http/2, а 400мс это время на клиенте с учетом рендеринга DOM и загрузки статики. Проект еще не в продакшене и сырой. Но если кто не верит могу показать.
10:13:46 ПП
User 139068333
User 136935602
конечно же нет. Оно на асинхронном io как nginx
это не говорит вообще ничего
10:14:09 ПП
User 202520
User 9656239
Бэк на Go, перед ним nginx с http/2, а 400мс это время на клиенте с учетом рендеринга DOM и загрузки статики. Проект еще не в продакшене и сырой. Но если кто не верит могу показать.
ну суть вопроса была в поддержке http/2 в nginx)) спасибо
10:14:34 ПП
User 282857241
Надо об этом почитать
10:15:03 ПП
User 1844260
User 9656239
Бэк на Go, перед ним nginx с http/2, а 400мс это время на клиенте с учетом рендеринга DOM и загрузки статики. Проект еще не в продакшене и сырой. Но если кто не верит могу показать.
а как ты мерил? говорят, типа браузеры время после хендшейка показывают, типа неправильно сравнивать его с http
10:15:14 ПП
User 1844260
или по http совсем медленно было?
10:17:15 ПП
User 282857241
Хотелось бы посмотреть что у вас за пример с 400мс
10:17:16 ПП
User 9656239
Разница в секунду с чем то. Это на отдачу статики всякой уходит. Шрифты тоже впихнул к себе в css и в head положил. Т.к. с гугла дольше чем уже в своем открытом соединении отдать.
10:17:35 ПП
User 9656239
Шрифты вообще больная тема была.
10:18:51 ПП
User 282857241
что думаете об асинхронной загрузке google-fonts с Web Font Loader?
10:18:58 ПП
User 9656239
Они тоже полсекунды до полной прогрузки страницы съедали, т.к. начинают грузиться с сервера только после рендеринга DOM полного.
10:19:36 ПП
User 9656239
User 282857241
что думаете об асинхронной загрузке google-fonts с Web Font Loader?
Мерцания - это ужасно.
10:21:11 ПП
User 9656239
Ничего лучше кодирования в base64 и вставки в css мои поиски не дали.
10:21:42 ПП
User 9656239
Но это с учетом использования http/2
10:23:09 ПП
User 9656239
http/2 позволяет выгодно отказаться от CDN, а значит и от трат времени на dns запросы и установку соединений.
10:24:29 ПП
User 112715267
Неплохо-неплохо
10:27:06 ПП
User 282857241
User 9656239
Мерцания - это ужасно.
это уже вопрос эстетический и субъективный, я считаю
10:27:24 ПП
User 282857241
как по мне, так лучше отобразить хоть что-то и как можно быстрее, чем ничего
10:28:02 ПП
User 112715267
Лайфхак - покажите структуру, а потом подгрузите шрифт
10:28:23 ПП
User 112715267
И данные какие-то, если они динамические, так же можно пилить
10:28:39 ПП
User 112715267
Прелоадеры не каеф
10:28:47 ПП
User 9656239
зачем? у меня 400мс до полной загрузки страницы.
10:28:52 ПП
User 282857241
то есть, вы предлагаете все таки грузить шрифты асинхронно?
10:28:58 ПП
User 112715267
Улучшайте user experience
10:29:00 ПП
User 282857241
Kelin, это я вам
10:29:13 ПП
User 112715267
User 282857241
то есть, вы предлагаете все таки грузить шрифты асинхронно?
А почему нет?
10:29:36 ПП
User 282857241
ну вот Илья, например, считает, что есть причины
10:29:47 ПП
User 282857241
я так с вами согласен :)
10:29:49 ПП
User 112715267
Сначала отобразите структуру страницы, а затем пусть текст появится, если такая необходимость есть
10:30:16 ПП
User 112715267
Вот, кстати, будет смешно, но в мобильном приложении одноклассников такая тема есть
10:30:28 ПП
User 112715267
😄 нет, я не сижу в одноклассниках, я просто видел
10:30:38 ПП
User 282857241
да почему смешно, у них вроде бы фронт-енд на уровне, как раз таки
10:30:57 ПП
User 282857241
точнее не фронтенд, а вообще техническая часть
10:33:35 ПП
User 112715267
Не очень
10:33:47 ПП
User 112715267
Даже у вк в некоторых местах лучше
10:34:35 ПП
User 112715267
"в некоторых", потому что у меня уже горит с того, что иногда несколько сообщений отправляются, а доходит только одно
10:34:47 ПП
User 112715267
А остальные только после перезагрузки отправить удается
10:35:51 ПП
User 282857241
в ВК с недавних пор я вообще перестал сидеть
10:36:58 ПП
User 112715267
Я все никак не могу своих товарищей в телеграм пересадить
10:37:05 ПП
User 112715267
Они только меня и держат там
10:37:30 ПП
User 75951305
Я короче везде
10:37:37 ПП
User 75951305
новичок
10:37:49 ПП
User 75951305
Телеграм тоже недавно начал юзать)
10:44:33 ПП
User 9656239
Господа. С бэкэндом у меня все хорошо. А вот с Vue есть вопросы. Скажите все таки, нормально ли использовать множество экземпляров Vue. Я хочу сделать некую видимость изоморфности. Допустим на странице есть 2 компонента, один из компонентов допустим грид с данными (таблица). Другой компонент форма обратной связи. Эти компоненты понятное дело никак не связаны. Я хочу рендерить первую страницу дата-грид на сервере, а при пагинации уже перерендеривать все c помощью Vue, заменяя отредеренный на сервере контент таблицы. Получается мне на странице нужно 2 экземпляра Vue с разными селекторами элемента (один для формы обратной связи, другой для таблицы). Т.е. шаблонизировать страницы полностью внутри Vue я не могу (т.к. рендерю я их на бэкэнде написанном на Go) или можно обойтись одним экземпляром Vue как то?
10:44:52 ПП
User 136935602
Да, нормально
10:46:05 ПП
User 136935602
не пугайтесь "множества экземпляров"
10:46:18 ПП
User 136935602
vue как и всем современным фреймворкам на это пофигу
10:48:30 ПП
User 139068333
а я просто не нашел в вуе способа как наращивать абстракции кроме как плодить инстансы
10:48:38 ПП
User 9656239
Я смотрел Nuxt и почти готов был отдать все это ноде, но тогда бы всплыли куча других проблем роутинга, логики которую пришлось бы пихать в express, мидлвари всякие. Мой фронтендер не готов к этому пока, да и архитектурно меня нода как еще одна технология в стэке не сильно прельщает.
10:48:43 ПП
User 139068333
в компонентах стейта быть не может
10:48:50 ПП
User 9656239
User 136935602
vue как и всем современным фреймворкам на это пофигу
спасибо
10:49:02 ПП
User 282857241
по поводу шрифтов, только что узнал, что можно вот так http://keithclark.co.uk/articles/loading-css-without-blocking-render/
keithclark.co.uk/articles/loading-css-without-blocking-render
A technique to get content in front of visitors as quickly as possible by asynchronously downloading stylesheets to prevent them from blocking page render.
10:51:17 ПП
User 139068333
User 139068333
это не говорит вообще ничего
имелось ввиду вобщем то что можно просто загрузить ивентлуп ноды хорошо. если не по процу то по памяти например
10:51:19 ПП
User 136935602
User 139068333
в компонентах стейта быть не может
что значит не может :)
10:51:30 ПП
User 9656239
User 282857241
по поводу шрифтов, только что узнал, что можно вот так http://keithclark.co.uk/articles/loading-css-without-blocking-render/
keithclark.co.uk/articles/loading-css-without-blocking-render
A technique to get content in front of visitors as quickly as possible by asynchronously downloading stylesheets to prevent them from blocking page render.
вы про это:
10:51:31 ПП
10:51:45 ПП
10:51:46 ПП
User 139068333
User 136935602
что значит не может :)
могу процитировать документацию даже
10:52:11 ПП
10:52:32 ПП
User 136935602
давайте )
10:55:06 ПП
User 9656239
User 136935602
не пугайтесь "множества экземпляров"
Можно еще вопрос? Для связи этого множества экземпляров мне нужен Vuex? Я на него смотрю - вроде оно. Правда я так и не могу догнать, что такое "стейт". Что данные шарятся между экземплярами понимаю, а почему данные называются "состояние" не понимаю.
10:55:42 ПП
User 136935602
если данные нужны более чем в одном месте и эти места не связаны отношением родитель-ребенок - то да
10:56:07 ПП
User 75951305
есть еще общая шина
10:56:15 ПП
User 75951305
если нужно чуть чуть
10:56:15 ПП
User 136935602
почему это состояние - потому что это состояние в котором находится приложение. Данные  могут быть откуда угодно - не обязательно от бэкэнда
10:56:23 ПП
User 136935602
знаем мы эти "чуть чуть"
10:56:28 ПП
User 136935602
лучше так не делать )
10:56:32 ПП
10:56:47 ПП
User 136935602
и почему состояние - потому что все приложение описывается формулой UI = f(Code, State)
10:56:59 ПП
User 75951305
Можете подсказать
10:57:02 ПП
User 136935602
т.е. то что видит пользователь на экране есть ЧИСТАЯ (и это важно) функция от кода и состояния
10:57:30 ПП
User 9656239
User 75951305
есть еще общая шина
из доков я понял, что так можно, но ненужно =)
10:57:32 ПП
User 75951305
как мне из массива vue убрать удаляемую todo
10:57:44 ПП
User 75951305
я уже не могу думать
10:58:07 ПП
User 136935602
как хотите
10:58:11 ПП
User 136935602
фильтром, сплайсом
10:58:40 ПП
User 9656239
User 75951305
я уже не могу думать
поспи, сходи пройдись на свежем воздухе - это реально помогает
10:58:57 ПП
User 75951305
this.todos = this.todos.filter(v => {
            return v._id !== todo._id
          })
10:58:59 ПП
10:59:50 ПП
User 9656239
User 75951305
this.todos = this.todos.filter(v => {
            return v._id !== todo._id
          })
примерно похоже
11:01:59 ПП
User 9656239
User 136935602
т.е. то что видит пользователь на экране есть ЧИСТАЯ (и это важно) функция от кода и состояния
еще раз спасибо
11:09:15 ПП
User 75951305
а сплайсом как
11:16:42 ПП
User 139068333
User 136935602
давайте )
https://vuejs.org/v2/guide/components.html#One-Way-Data-Flow
как то так же
vuejs.org/v2/guide/components.html
Vue.js - The Progressive JavaScript Framework
11:17:36 ПП
User 136935602
И где там запрет на иметь состояние
11:17:47 ПП
User 139068333
тоесть да, они пишут что можно сделать каунтер с начальным стейтом но по сути толку от него никакого
11:20:18 ПП
User 136935602
Компонентам не запрещено иметь свое состояние
11:20:27 ПП
User 136935602
И не все состояние начальное задаётся пропали
11:20:32 ПП
User 136935602
Пропсами
11:21:35 ПП
User 139068333
ну ок а как это состояние связано с глобальным ?
11:22:36 ПП
User 136935602
Никак
11:28:07 ПП
User 75951305
У меня вопрос
11:28:42 ПП
User 75951305
Я у себя из базы удаляю todo, если больше 5 то она виснет
11:28:49 ПП
User 75951305
без ошибок
11:32:47 ПП
User 139068333
User 136935602
Никак
зачем оно тогда нужно и как это вяжется с политикой что интерфейс должен определятсья стейтом ?
11:33:51 ПП
User 75951305
User 75951305
Я у себя из базы удаляю todo, если больше 5 то она виснет
Кто код может посмотреть из-за чего такая дрянь происходит
11:33:52 ПП
User 75951305
https://github.com/moddi3/todo-vue
github.com/moddi3/todo-vue
todo-vue - Simple todo app
11:34:16 ПП
User 136935602
Потому что некоторые состояния должны быть локальными.  Простейший пример - к примеру текущая активная вкладка если приложению вобщем-то пофигу на этр
11:35:25 ПП
User 9656239
Ребят. Вы в API'шки чаще всего в каком виде данные посылаете? JSON, uriencoded, formdata ? JSON вроде как удобнее всего для передачи форм. А для запроса информации GET по прежнему в ходу. Или сейчас запросы на получаение информации тоже POST в виде JSON все шлют?
11:36:11 ПП
11:37:24 ПП
User 9656239
User 75951305
json
а на запрос данных с API тоже POST запросы с параметрами в JSON?
11:38:16 ПП
User 75951305
this.$http.post('api/todos', { content: todo.content })
11:39:05 ПП
User 202520
Зачем передавать json в POST. сериализовать на клиенте, а потом парсить его на сервере. зачем?
11:39:58 ПП
User 9656239
User 202520
Зачем передавать json в POST. сериализовать на клиенте, а потом парсить его на сервере. зачем?
меня это и смущает, но мало ли это сейчас модно)
11:42:02 ПП
User 9656239
JSON сериализуется через JSON.stringify одной функцией, а GET запрос надо ручками собирать.
11:44:51 ПП
User 9656239
мне на сервере впринципе все равно как. я могу данные автоматически в структуры биндить хоть из url, хоть из formdata, хоть из JSON. Хочется для фронта удобнее сделать.