Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Vue' thread 1 (https://javascript.ru/forum/offtopic/58273-vue%27-thread-1-a.html)

ORMjs 21.06.2016 05:04

Цитата:

Сообщение от cyber
можешт рассказать в чем профит серверного рендеринга?)

улучшенное сео

kobezzza 05.07.2016 15:55

Цитата:

Сообщение от kobezzza (Сообщение 420046)
Планирую начать миграцию на 2.0. Лично я очень рад тому, что шаблоны стали компилиться, т.к. сейчас это на больших шаблонах вызывает фризы, что не круто. В общем отпишусь как с мигрируюсь :)

Переехал на Vue2, доволен как слон :)

nerv_ 05.07.2016 21:53

Цитата:

Сообщение от kobezzza
доволен как слон

а вот отсюда поподробнее :)

p.s.: не преждевременно ли? Она в альфе еще

kobezzza 06.07.2016 22:58

Цитата:

а вот отсюда поподробнее
В проекте, над котором я сейчас работаю, Vue сильно фризил UI (SPA) на больший шаблонах, а после обновления всё просто летает.

Цитата:

p.s.: не преждевременно ли? Она в альфе еще
Уже оч даже стабильно, во всяком случае я пока не наткнулся ни на одну ошибку. Просто много ломающих изменений и я подумал, что сейчас перейти будет проще, чем потом. На переход с изучением новых подходов и фич ушло дня 4.

nerv_ 07.07.2016 09:51

Цитата:

Сообщение от kobezzza
а после обновления всё просто летает

приятно слышать :)

Цитата:

Сообщение от kobezzza
Уже оч даже стабильно, во всяком случае я пока не наткнулся ни на одну ошибку

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

Цитата:

Сообщение от kobezzza
На переход с изучением новых подходов и фич ушло дня 4

если не затруднит, перечисли значемые нововведения на твой взгляд.
Меня, например, интересует, стал ли он более ООП-friendly. Хочется, что-то вроде реaктовского

kobezzza 07.07.2016 10:20

Цитата:

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

Цитата:

если не затруднит, перечисли значемые нововведения на твой взгляд
1) Компилируемые шаблоны и прогрессивный серверный рендеринг
2) Функциональные шаблоны
3) Иммутабельные входные параметры компонентов (теперь компонент может менять только данные обьявленые в data)
4) Отказ от DOM событий
5) Убрали двунаправленный биндинг

Вообще наблюдается уклон в сторону React. По мелочи много изменений, например, убрали методы $set и $get, и v-on на компоненте больше не слушает дом события, а только собственные события компонента. Больше нет $dispatch и $broadcast.

Часть функционала, нужного мне, я просто вернул используя гибкую плагинную архитектуру Vue, например, создал директиву v-e или аналог dispatch.

Вообще я использую Vue вместе со своей обёрткой, чтобы использовать классы и аннотации типов от Flow.

import iData from '../i-data/i-data';
import { PARENT_MODS } from '../i-block/i-block';
import * as tpls from './b-button.ss';
import { model } from '../../core/block';

@model(tpls)
export default class bButton extends iData {
	/**
	 * Button type
	 */
	type: string = 'button';

	/**
	 * Connected form id
	 */
	form: ?string;

	/**
	 * Icon before text
	 */
	preIcon: ?string;

	/**
	 * Icon after text
	 */
	icon: ?string;

	/**
	 * Tooltip text
	 */
	title: ?string;

	/** @override */
	static mods = {
		theme: [
			PARENT_MODS,
			'dark',
			'dark-form',
			'dark-link',
			'dark-pseudo-link',
			'link',
			'pseudo-link'
		]
	};
}


Тут декоратор класcа model анализирует содержимое класса и создаёт компонент для Vue: геттеры и сеттеры становятся компьютедами, свойсва класса - пропсами, причём с учётом типа, методы и т.д. Работает super и шикарный автокомплит :) Ну а шаблоны по прежнему генерит Snakeskin :)

- namespace [%fileName%]

- include '../i-data/' as placeholder
: rootTag = 'span'

- template index(params) extends ['i-data'].index
	- block body
		- super

		: attrs = {}
		- block attrs() =>

		- block button
			< button.&__button ref = button | :type = type | :form = form | :data-title = title | ${attrs}
				< span.&__wrapper
					< span.&__cell.&__pre-icon v-if = preIcon
						< b-icon :value = preIcon | :init-mods = baseMods

					< span.&__cell.&__value
						< slot

					< span.&__cell.&__icon v-if = icon
						< b-icon :value = icon | :init-mods = baseMods

					< span.&__cell.&__icon.&__progress
						< b-progress-icon :init-mods = baseMods

kobezzza 07.07.2016 14:03

Цитата:

Меня, например, интересует, стал ли он более ООП-friendly
Он всегда таким был, а обёртка на классах - строк 100 кода (см пример выше).

nerv_ 08.07.2016 14:30

Цитата:

Сообщение от kobezzza
и v-on на компоненте больше не слушает дом события, а только собственные события компонента

А как теперь на DOM события подписываться?

kobezzza 08.07.2016 14:34

Цитата:

Сообщение от nerv_ (Сообщение 421599)
А как теперь на DOM события подписываться?

v-on по прежнему может слушать DOM события, если он навешен не на компонент, но меня он всё равно не устраивал своим синтаксисом, поэтому я добавил новую директиву v-e (добавить директиву очень просто).

< my-component v-e:mousedown,touchstart = myHandler

nerv_ 12.08.2016 19:27

Цитата:

Сообщение от kobezzza
Vue2 дошёл до RC !
Появилась дока

Спасибо! Очень хорошие новости :)

Хотел поинтересоваться твоим личным мнением: что ты вообще думаешь об этой библиотеке? Для меня, например, было открытием, насколько с ней приятно работать, после ангуляра 1.х.

Недавно я выступал с докладом о Vue на местном собрании девелоперов.
Ссылка на презентацию https://drive.google.com/open?id=1Vm...bzugym5gdC eI :)


Часовой пояс GMT +3, время: 09:26.