Подать работу на премию JOY могут и читатели
Подать работу на премию JOY могут и читатели
Мэри Лу Джепсен — опытный эксперт по технологии отображения, который работал над футуристическими проектами в Google, Oculus, Intel и One Laptop Per Child , среди других мест. Она создала Pixel Qi, маломощную технологию отображения, а ее последняя компания, Openwater, ориентирована на создание передовых технологий обработки изображений, которые могут лучше читать мозг — как для медицинских…
Протестная медийная компания, развернутая весной этого года в связи с выставлением на торги частным Музеем современного искусства Рио-де-Жанейро работы Джексона Поллока «№16», увы, не увенчалась успехом — аукционный дом Phillips объявил о продаже произведения 15 ноября на аукционе в Нью-Йорке. Ситуацию с продажей в самом музее объясняли бедственным положением и дефицитом бюджета. Институция, как выяснилось,…
. Топливные элементы с водородным топливом являются привлекательной концепцией. Водород объединяется с кислородом из воздуха для производства электричества и водяного пара. Электричество может использоваться для питания электродвигателя, что делает электрический автомобиль (EV) практически свободным от выбросов, и его можно заправлять за считанные минуты. Но топливные элементы сталкиваются с целым рядом проблем, прежде чем они смогут…
Два дня будут доступны публике в Москве несколько лотов будущего лондонского аукциона Sotheby’s «Русское искусство». Пятнадцать произведений, а также три картины западноевропейских мастеров будут гостить во флигеле «Руина» Музея архитектуры 1 и 2 ноября. Два аукциона русского искусства пройдут в этом году 27 ноября. Первый традиционно посвятят декоративно-прикладному искусству, второй — живописи, графике и скульптуре.…
Что нового в графическом дизайне? Вот краткий обзор главных тенденций графического дизайна 2018 года, а также небольшой обзор того, что, вероятно, мелькает на горизонте 2019 года. Это настолько интересная тема, потому как есть тенденции, которые медленно меняются с течением времени — просто посмотрите на долгую эволюцию плоского дизайна до сегодняшнего времени — и другие, которые,…
Некоторые из лучших печатных объявлений Великобритании исследуют AR с проектом Adobe Aero. Из многих анонсов, сделанных в этом году в Adobe MAX в Лос-Анджелесе, внимание привлекла демонстрация проекта Aero, инструмента AR, доступного только в частной бета-форме, и которую мы увидели назад в июне. В Будущее нового дизайна (ниже), событие MAX, связанное с инструментом, Digital Arts…
Приложение работает на мобильных устройствах, планшетах и настольных компьютерах и предназначено для тех, кто занимается редактированием видео, но хочет создать «профессиональный» контент для социальных сетей. Сара Дауд 22 октября 2018 года 17:42 22 октября 2018 года 17:42 Adobe запустила новое приложение Premiere Rush, которое предназначено для создания дизайнеров, художников, писателей и других объявлений, которые не…
Если вы создатель контента, у вас, вероятно, есть целый набор инструментов в вашем арсенале, чтобы помочь вам в творческих задачах. Что, если у вас может быть только один, чтобы покрыть их всех? Благодаря Pro Plan вы получаете доступ к бесчисленным шрифтам, роялти-фри фото, фильтрам, схемам коллажей и многим другим. Вы также можете использовать функции редактирования…
English |简体 中文
Omi: веб-инфраструктура следующего поколения в JavaScript 4kb
Объединить JSX, веб-компоненты, прокси, магазин, обновление пути вместе
UI = fn (данные)
. requestIdleCallback
this.update
метод при использовании системы хранения ! Он будет автоматически обновлять пользовательский интерфейс при изменении данных. className
filename-classname-hash
такого как CSS-модули, Vue), являются хакерскими технологиями; и Shadow DOM Style — идеальное решение . Сравнить TodoApp от Omi и React, Omi и React, рендеринг структуры DOM:
Оми | React | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() Эта страница демонстрирует использование Omi без инструмента для сборки .
< HTML >
< глава >
meta charset = " UTF-8 " />
< название > Добавить Оми в одну минуту </ название >
</ глава >
< тело >
src = " https://unpkg.com/omi " > </ ] сценарий >
< сценарий >
const { WeElement h render определяют } = Оми
класс LikeButton распространяется WeElement {
установить () {
= {понравилось : false }
}
() {
если ( это . данные . понравилось ) {
return ' Вам понравилось. '
}
возвращение h (
{
onClick : () => {
это . данные . понравилось = true
это . обновление ()
}
},
'
)
}
}
определяют ( » аналогичная кнопка ' LikeButton)
h ( » аналогичная кнопка ), ' тела )
</ сценарий >
</ тела >
</ HTML >
Вы также можете использовать тег < тело >
< как-кнопки > </ как-кнопки >
</ тела >
Начало работыУстановите $ npm i omi-cli-g # установить cli
$ omi init your_project_name # init project, вы также можете выполнить команду 'omi init' в пустой папке
$ cd your_project_name # пожалуйста, проигнорируйте эту команду, если вы выполнили 'omi init' в пустой папке
$ npm start # разработать
$ npm run build # выпуск
Описание в каталоге:
Автосозданные строительные леса CLI основаны на одностраничном приложении create-response-app, которое будет преобразовано в многостраничное, с проблемами конфигурации, чтобы увидеть руководство пользователя для создания-реагирования-приложения Hello Element Определите пользовательский элемент, расширив import { tag WeElement render } из оми
@ Тег ( Привет-элемент )
класс HelloElement extends WeElement {
onClick = ( evt ) => {
// триггер CustomEvent
abc ' {name : dntzhang ' возраст : 12 })
ЭВТ . stopPropagation ()
}
css () {
возвращение `
div {
цвет: красный;
курсор: указатель;
} `
}
render ( реквизит ) {
возвращение (
< div onClick = { это . onClick } >
Привет [ реквизит . msg } { реквизит . propFromParent }
< div > < / div >
< / DIV >
)
}
}
Использование import { tag WeElement render } из оми
импорт ' ./ hello-element '
@ Тег ( мое-приложение )
класс MyApp распространяется WeElement {
static get данные () {
{abc : ' passToChild : ' }
}
// bind CustomEvent
onAbc = ( evt ) => {
// получить данные evt по evt.detail
abc = $ { ЭВТ . подробно . имя } `
это . Обновление ()
}
css () {
возвращение `
div {
цвет: зеленый;
} `
}
реквизит данные ) {
возвращение (
< DIV >
Привет [ реквизит . имя } { данные . abc }
- элемент onAbc = { onAbc } prop - из - parent = { данные . passToChild } msg = " WeElement " > < / Привет - элемент >
< / DIV >
)
}
}
< мое - название приложения = ' Omi v4.0 ' > / мой - приложение > ' тело )
Скажите Бабелю, чтобы превратить JSX в {
presets " : [ " env " " оми " ]
}
Для поддержки вышеуказанной конфигурации необходимо установить следующие два пакета NPM: " babel-preset-env " : " ^ 1.6.0 " ,
" babel-preset-omi " : " ^ 0,1.1 " ,
Если вы не хотите писать CSS в JS, вы можете использовать to-string-loader, {
: / [ | / ] _ [ ] S ] * . CSS $ / ,
использование : [
в строке-загрузчик ,
CSS-погрузчик
]
}
Если ваш файл CSS начинается с « import { tag WeElement render } из ' оми
// typeof cssStr является строкой
импорт cssStr из ' ./_ index.css '
@ Тег ( мое-приложение )
класс MyApp распространяется WeElement {
css () {
возвращение cssStr
}
...
...
...
TodoAppВот относительно полный пример TodoApp: import { tag WeElement render } из оми
@ Тег ( TODO-лист )
класс TodoList extends WeElement {
render ( реквизит ) {
возвращение (
< уль >
{19459049] реквизит . предметы . карта ( пункт =>
< li key = { Пункт . id } > { Пункт . текст } < / Li >
))}
< / уль >
);
}
}
@ Тег ( TODO-приложение )
класс TodoApp extends WeElement {
static get данные () {
{пункты : []текст : ' }
}
render () {
возвращение (
< DIV >
< Н3 > TODO < / Н3 >
< todo - перечислил элементы = { . данные . пункты } / >
< форма onSubmit = { этот . рукояткаSubmit } >
< вход
ID = " новый список задачи "
OnChange = { это . handleChange }
значение = { это . Данные . текст }
/ >
< Кнопка >
. длина + 1 }
< / Кнопка >
< / форма >
< / DIV >
);
}
handleChange = ( e ) => {
текст = e . Цель . значение
}
handleSubmit = ( e ) => {
е preventDefault ().
если это . данные . текст . обрезка (). длина ) {
возвращение ;
}
это . Данные . элементов . толчок ({
текст : это . данные . текст ,
id : Дата . сейчас ()
})
данные . текст = ;
это . Обновление ()
}
}
< todo - приложение / > ' тело )
Магазин Попробуйте экспорт по умолчанию {
данные : {
пункты : [],
текст : ' ' ,
firstName : ' dnt ' ,
lastName : ' zhang ' ,
fullName : функция () {
возвращение это . firstName + это . lastName
},
: abc ' // Изменить, он обновит все элементы без изменения компонентов и страницы, объявляющих зависимость данных.
ccc : : : 1 } // Изменить это будет обновлять все элементы без изменения компонентов и объявления страниц. зависимость.
},
globalPropTest ' ' ccc.ddd ' ],
добавить : function () {
если это . данные . текст . обрезка (). длина ) {
возвращение ;
}
это . Данные . элементов . толчок ({
текст : это . данные . текст ,
id : Дата . сейчас ()
})
данные . текст =
}
// Значение по умолчанию - false, значение true будет обновлять все экземпляры при изменении данных.
// updateAll: true
}
Пользовательский элемент требует объявления зависимых данных, так что Omi сохраняет вычислительный путь зависимости на основе данных, объявленных на пользовательском компоненте, и обновляет их локально по мере необходимости. Например: класс TodoApp распространяется WeElement {
// Если вы используете хранилище, данные используются только для объявления зависимостей.
static get данные () {
{пункты : []текст : ' }
}
// ...
handleChange = ( e ) => {
текст = e . цель . значение
}
handleSubmit = ( e ) => {
е . preventDefault ()
это . магазин . добавить ()
}
}
Вам нужно ввести < todo - приложение / > тело ' магазин)
→ Сохранить исходный код Резюме:
Жизненный цикл
Компонентная экосистемаЯ считаю, что вы можете легко преобразовать элементы веб-компонентов в элементы omi. ОтладкаИспользуя Omi DevTools, вы можете просто отлаживать и управлять своим пользовательским интерфейсом без какой-либо конфигурации . Просто установите и отлаживайте. Поскольку Omi использует веб-компоненты и Shadow-DOM, ему не нужно иметь другую панель элементов, такую как React или Vue. Он просто добавляет панель к боковой панели элементов и она настолько же эффективна, как и React и Vue DevTools. Omi 4.0+ работает в последних двух версиях всех основных браузеров: Safari 10+, IE 11+ и вечнозеленых Chrome, Firefox и Edge. Вклад
Пожалуйста, свяжитесь с нами по любым вопросам: ЛицензияMIT © Tencent 1
Go to Top
23456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 …138139140141142…173 |