@vuejs_ru

Страница 3600 из 3900
rddlr
08.09.2018
14:05:38
может как-то императивно можно указать компоненту не маунтится?

и почему он вообще маунтится я не понимаю

ну т.е. если я повешу условие на app-modal тогда маунтед ожидаемо не отрабатывает. я был уверен что он не будет отрабатывать и если это условие внутри самого компонента. а оказалось вот что. у меня ощущение из-за этого и не работают мои транзишены с порталом

только я нахожу это странным и нелогичным?

Google
John
08.09.2018
14:13:56
Есть песочница?

rddlr
08.09.2018
14:16:03
выше ж ссылка. ее не видно?)

ну вот что не так? получается компонент будет маунтится если я пропсом кидаю условие?

как я раньше не обращал на это внимание не понятно

Alex
08.09.2018
14:28:48
Ну компонент маунтится, несмотря на то что внутри него все под условием. Логично же :)

Выносите условие наверх

Если это критично

Mike
08.09.2018
14:30:37
Ребят подскажите про правильность моих действий я сейчас делаю адаптацию, и у меня в проетке на мобильных устройствах вместо сайдбара стоит мобильная навигация внизу. так вот, я хочу через v-if показывать или сайдбар или навигацию. с этим у меня проблем нет, я все сверстал и сделал. дело в том, что у меня есть 2 лейаута, 1 без сайдбара (для страницы логина) а другой с сайдбаром (для всех страниц сайта), так вот, в каждой странице сайта есть обертка этим лейаутом с сайдбаром, а в ней уже контент, ну такая, стандартная практика, чтобы в App.vue мозги не делать. дело в том, что я хочу все сделать максимально производительным, то есть по v-if, чтобы для телефонов не грузился код, который не нужен. вот код этого лейаута: <template> <div class="layout-default"> <AppSidebar v-if="showSidebar"/> <MobileNavigation v-else/> <main> <slot/> </main> </div> </template> <script> import AppSidebar from './AppSidebar' import MobileNavigation from './MobileNavigation' export default { name: 'LayoutDefault', components: { AppSidebar, MobileNavigation }, data () { return { showSidebar: true } }, created () { window.addEventListener('resize', () => { this.showSidebar = window.innerWidth > 991 }) } } </script> а вот почему я спрашиваю: я в хуке created повесил обработчик ресайза на window, и при ресайзе присваивается значение переменной showSidebar, чтобы v-if работал. но в этот лейаут обернуты все страницы, за исключением логина, и когда будет новый переход по странице, то получается будет вешаться новый обработчик на window?

rddlr
08.09.2018
14:31:03
Если это критично
если вынесу условие наверх, то перестает работать транзишен

Alex
08.09.2018
14:31:48
Транзишен тоже вынести наверх

rddlr
08.09.2018
14:31:52
если вынесу условие наверх, то перестает работать транзишен
впрочем нет, работает. значит это 100% вина портала.

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

Alex
08.09.2018
14:33:43
Ребят подскажите про правильность моих действий я сейчас делаю адаптацию, и у меня в проетке на мобильных устройствах вместо сайдбара стоит мобильная навигация внизу. так вот, я хочу через v-if показывать или сайдбар или навигацию. с этим у меня проблем нет, я все сверстал и сделал. дело в том, что у меня есть 2 лейаута, 1 без сайдбара (для страницы логина) а другой с сайдбаром (для всех страниц сайта), так вот, в каждой странице сайта есть обертка этим лейаутом с сайдбаром, а в ней уже контент, ну такая, стандартная практика, чтобы в App.vue мозги не делать. дело в том, что я хочу все сделать максимально производительным, то есть по v-if, чтобы для телефонов не грузился код, который не нужен. вот код этого лейаута: <template> <div class="layout-default"> <AppSidebar v-if="showSidebar"/> <MobileNavigation v-else/> <main> <slot/> </main> </div> </template> <script> import AppSidebar from './AppSidebar' import MobileNavigation from './MobileNavigation' export default { name: 'LayoutDefault', components: { AppSidebar, MobileNavigation }, data () { return { showSidebar: true } }, created () { window.addEventListener('resize', () => { this.showSidebar = window.innerWidth > 991 }) } } </script> а вот почему я спрашиваю: я в хуке created повесил обработчик ресайза на window, и при ресайзе присваивается значение переменной showSidebar, чтобы v-if работал. но в этот лейаут обернуты все страницы, за исключением логина, и когда будет новый переход по странице, то получается будет вешаться новый обработчик на window?
Компонент же останется

Google
Максим
08.09.2018
14:34:34
Есть у меня вот такой вот список треков с названием треков и контролами справа: https://slack-imgs.com/?c=1&url=https%3A%2F%2Fmonosnap.com%2Ffacebook%2Fgenerate_image_preview%3Fid%3DhRdYxCD0xIyHQBTbTWFzY9BondFEzX. По нажатию на каждую из этих кнопок (будь то кнопка плей, редактирование или удалить) мне нужно, чтобы остальные кнопки выключались, а текущая (на которую нажал) включалась. И также нужно, чтобы по нажатию на кнопку “редактировать” слева открывался инпут этой строки (он спрятам, не суть). Как правильно на Vue.js делать такое?)

Mike
08.09.2018
14:34:48
Компонент же останется
ну хз, то есть это же SPA, при переходах по страницам подгружаются вьюхи с компонентами, то есть я думал этот компонент заного дублируется при переходе на новую страницу

Максим
08.09.2018
14:35:42
то есть проходиться по ВСЕМ кнопкам и их выключать, а потом включать нужную?

с помощью простого жс

Alex
08.09.2018
14:35:53
ну хз, то есть это же SPA, при переходах по страницам подгружаются вьюхи с компонентами, то есть я думал этот компонент заного дублируется при переходе на новую страницу
Внутри компонента шаблона есть router-view в который уже подставляются компоненты страниц. Компонент шаблона остаётся

то есть проходиться по ВСЕМ кнопкам и их выключать, а потом включать нужную?
Можете завести свойство кто сейчас играет, а остальные сравнивать совпадает ли их айди с тем что играет или нет

Mike
08.09.2018
14:36:50
Внутри компонента шаблона есть router-view в который уже подставляются компоненты страниц. Компонент шаблона остаётся
я знаю, в него подставляется компонент да, но у меня этот компонент, которы подставляется, обернут как раз таки в этот лейаут, в которов вешается ресайз на window

Alex
08.09.2018
14:37:23
Просто лишнюю вложенность добавляете?

Максим
08.09.2018
14:37:36
Можете завести свойство кто сейчас играет, а остальные сравнивать совпадает ли их айди с тем что играет или нет
То есть, если не совпало, то выключаем кнопку (то есть, свойство) и присваиваем этому свойству новую кнопку?

Alex
08.09.2018
14:38:15
То есть, если не совпало, то выключаем кнопку (то есть, свойство) и присваиваем этому свойству новую кнопку?
Ну либо храните свойство что там сейчас активно и меняете его. Либо в каждом объекте своё свойство и меняете все)

Выбирайте

Максим
08.09.2018
14:38:44
А немного не понял про свойство, которое активно

Alex
08.09.2018
14:39:13
selectedId куда сохранять например айди проигрываемого

И везде сравнивать с selectedId чтобы понимать

Максим
08.09.2018
14:40:03
ну просто дело в том, что, во-первых, у кнопок нет айди, а во-вторых, там ещё и редактирование кнопка, и удалить трек, + этот инпут ещё(

столько создавать свойств

Mike
08.09.2018
14:40:20
Просто лишнюю вложенность добавляете?
просто есть компонент страницы, его содержимое обернута в компонент, где есть сайдбар, я это сделал потому, что не везде сайдбар есть

Максим
08.09.2018
14:40:45
у кнопок этих есть классы, одниковые, так как бэм

выходит надо как минимум 4 свойства создавать на инпут и каждую кнопку

Google
Alex
08.09.2018
14:41:30
Не у кнопок. У строки

Ну работайте от данных) хотите меняйте в данных строк, тогда не удивляйтесь что другие тоже надо менять)

Mike
08.09.2018
14:43:02
Alex
08.09.2018
14:43:53
Ну в апп.вью и разруливайте один раз на все страницы нужен сайдбар или мобильная навигация

rddlr
08.09.2018
15:18:55
вообщем, ребята. просто пишу вам чтобы вы не повторяли ошибки таких дебилов как я (которые тратят 5 часов на поиск лисапеда), а не читают доку <portal-target :transition="{ name: 'fade'}" :transition-events="{ enter: onEnterCallBack }" /> и все, ска, работает

у портала есть свой апи для транзишенов)))

The
08.09.2018
16:04:11
зачем многие css фреймворки называют классы с цветами danger, warning, и т.д.?

почему нельзя назвать yellow, red, и т.д.?

это для того, что кто-то решит danger переделать в зеленый?

ну ладно там info, primary и т.д.

мир фронтенда такой дивный

все через жопку

Alex
08.09.2018
16:08:10
Может быть не красный а малиновый

Не зелёный а салатовый

А в некоторых случаях совсем другие цвета

Не будешь же в кучу мешать info и красный

The
08.09.2018
16:12:45
это логично, да, но проблема в том, что люди начинают выделять скидки is-dangerами, а наличие is-success, и семантика более не семантика.

хотя, это видимо уже проблемы отдельных уникумов, можно же сделать .sale color: $danger-color

Google
John
08.09.2018
16:13:37
Именно

Alex
08.09.2018
16:18:35
Проблема не в инструментах

А прослойках до них ))

Speed of
08.09.2018
16:22:28
в vuetify надо добавить justify-end только в некоторых случаях, как это реализовать через if else ? чет не получается у меня

Alexey
08.09.2018
16:22:52
async getDefaultsTest({ commit, getters, dispatch }) { console.log("getDefaults") try { await Promise.all([ new Promise((resolve, reject) => { if (getters["settings/app_settings"]) { resolve() } else { console.log("need settings_get") return this.$axios .$get("settings_get") .then(result => { console.log("settings get ok") commit("settings/SET_APP_SETTINGS", result.appSettings) resolve() }) .catch(err => reject(err)) } }), new Promise((resolve, reject) => { if (getters["configure/servers"]) { resolve() } else { console.log("need servers_get") return this.$axios .$get("servers_get") .then(result => { console.log("servers get ok") commit("configure/SET_SERVERS", result.servers) resolve() }) .catch(err => reject(err)) } }) ]) console.log("promise all end") } catch (err) { const error_msg = err.response && err.response.data ? err.response.data : err throw new Error(Request error. ${error_msg}) } }

чекните плиз код. что не так?

Admin
ERROR: S client not available

Alex
08.09.2018
16:23:48
Зачем try catch?

Alexey
08.09.2018
16:23:50
смысл паралельно два запросе к беку отослать и заполнить стор. но только если нужно

Alexey
08.09.2018
16:24:15
Зачем try catch?
ловить error из promise all

Alex
08.09.2018
16:24:40
А .catch тебе зачем тогда

И promise all тут тоже плохо

Speed of
08.09.2018
16:25:02
:justify-end="trueStatementOrfalseStatement" ?
сейчас попробуйю, спасибо)

Alex
08.09.2018
16:25:04
1 промис реджектнится- все реджектнится

Alexey
08.09.2018
16:25:18
А .catch тебе зачем тогда
без catch внутри это не работало корректно

почему? а как?

Alex
08.09.2018
16:25:27
Promise.all().catch

Так лови ошибки

Google
Alexey
08.09.2018
16:25:42
Promise.all().catch
ок. вместо try catch

Alex
08.09.2018
16:25:46
Само собой

Или пиши свою обертку на параллелизацию

Alexey
08.09.2018
16:26:08
а что еще исправить?

Alex
08.09.2018
16:26:32
Или любую библиотеку для асинк флоу

Например async

Alexey
08.09.2018
16:27:13
Или любую библиотеку для асинк флоу
хочецца пока так разобраться стандартным promise all . что еще исправить?

Alex
08.09.2018
16:27:15
И return ещё всего этого

Иначе функция ж не асинхронная

Alexey
08.09.2018
16:27:44
может каждый запрос все же вынести в отдельнвй action

Alex
08.09.2018
16:28:12
вместо чего?
Всего содержимого функции

У тебя асинхронная функция должна промис вернуть

Alexey
08.09.2018
16:28:31
Roman
08.09.2018
16:28:48
а как
запросы смешаны с логикой

аксиос в прототипе

Страница 3600 из 3900