Работа Поллока из Музея Рио все-таки будет продана на Phillips • ARTANDHOUSES

Протестная медийная компания, развернутая весной этого года в связи с выставлением на торги частным Музеем современного искусства Рио-де-Жанейро работы Джексона Поллока «№16», увы, не увенчалась успехом — аукционный дом Phillips объявил о продаже произведения 15 ноября на аукционе в Нью-Йорке. Ситуацию с продажей в самом музее объясняли бедственным положением и дефицитом бюджета. Институция, как выяснилось,…

Катализатор наноматериалов может помочь сохранить затраты на топливную ячейку

. Топливные элементы с водородным топливом являются привлекательной концепцией. Водород объединяется с кислородом из воздуха для производства электричества и водяного пара. Электричество может использоваться для питания электродвигателя, что делает электрический автомобиль (EV) практически свободным от выбросов, и его можно заправлять за считанные минуты. Но топливные элементы сталкиваются с целым рядом проблем, прежде чем они смогут…

Пиросмани, Фешина и другие лоты привезут на два дня в Москву • ARTANDHOUSES

Два дня будут доступны публике в Москве несколько лотов будущего лондонского аукциона Sotheby’s «Русское искусство». Пятнадцать произведений, а также три картины западноевропейских мастеров будут гостить во флигеле «Руина» Музея архитектуры 1 и 2 ноября. Два аукциона русского искусства пройдут в этом году 27 ноября. Первый традиционно посвятят декоративно-прикладному искусству, второй — живописи, графике и скульптуре.…

Лучшие 5 трендов графического дизайна 2018 года (+ предварительный обзор на 2019 год)

Что нового в графическом дизайне? Вот краткий обзор главных тенденций графического дизайна 2018 года, а также небольшой обзор того, что, вероятно, мелькает на горизонте 2019 года. Это настолько интересная тема, потому как есть тенденции, которые медленно меняются с течением времени — просто посмотрите на долгую эволюцию плоского дизайна до сегодняшнего времени — и другие, которые,…

Печатные легенды Dan Mumford и Supermundane о том, как совершить прыжок с 2D на AR — Особенности

Некоторые из лучших печатных объявлений Великобритании исследуют AR с проектом Adobe Aero. Из многих анонсов, сделанных в этом году в Adobe MAX в Лос-Анджелесе, внимание привлекла демонстрация проекта Aero, инструмента AR, доступного только в частной бета-форме, и которую мы увидели назад в июне. В Будущее нового дизайна (ниже), событие MAX, связанное с инструментом, Digital Arts…

Взгляд на приложение Adobe «все-в-одном» Rush для новичков для редактирования видео

Приложение работает на мобильных устройствах, планшетах и ​​настольных компьютерах и предназначено для тех, кто занимается редактированием видео, но хочет создать «профессиональный» контент для социальных сетей. Сара Дауд 22 октября 2018 года 17:42 22 октября 2018 года 17:42 Adobe запустила новое приложение Premiere Rush, которое предназначено для создания дизайнеров, художников, писателей и других объявлений, которые не…

Оставайтесь на вершине творческих задач с помощью piZap Pro

Если вы создатель контента, у вас, вероятно, есть целый набор инструментов в вашем арсенале, чтобы помочь вам в творческих задачах. Что, если у вас может быть только один, чтобы покрыть их всех? Благодаря Pro Plan вы получаете доступ к бесчисленным шрифтам, роялти-фри фото, фильтрам, схемам коллажей и многим другим. Вы также можете использовать функции редактирования…

GitHub — Tencent / omi на webdesignernews.com

English |简体 中文

 omi "width =" 300 "style =" max-width: 100%; "/> </p>
<h2 align= Omi: веб-инфраструктура следующего поколения в JavaScript 4kb

Объединить JSX, веб-компоненты, прокси, магазин, обновление пути вместе

Почему Оми?

  • Крошечный размер. ( 4kb gzipped)
  • Поддерживает TypeScript.
  • Реактивная привязка данных
  • На основе Shadow DOM
  • Легко отлаживается через расширение Omi DevTools [Install from Chrome WebStore]
  • Соблюдение тенденции браузера и дизайна API.
  • Объединить JSX и веб-компоненты в одну структуру.
  • Веб-компоненты также могут быть ориентированы на данные, UI = fn (данные) .
  • JSX — лучший опыт разработки (интеллектуальное завершение кода и подсказка). Выражение пользовательского интерфейса с наименьшим грамматическим шумом.
  • Оригинальная система Path Updating . Автоматическое автоматическое обновление потребление низкой мощности высокая степень свободы, отличная производительность, легкая интеграция requestIdleCallback
  • Попробуйте this.update метод при использовании системы хранения ! Он будет автоматически обновлять пользовательский интерфейс при изменении данных.
  • Посмотрите на Facebook React vs Web Components, Omi сочетает в себе свои преимущества и дает разработчикам свободу выбора 19459017 .
  • Shadow DOM объединяется с Virtual DOM Omi использует как виртуальную DOM, так и реальную DOM DOW, чтобы сделать просмотр обновлений более точным и быстрым.
  • В системе Store 99,9% проектов не требуют путешествий во времени, и не только Redux может путешествовать, пожалуйста, не придумывайте Redux, система магазинов Omi может удовлетворить все проекты
  • Лучшее решение с CSS — это Shadow DOM сообщество, разбивающее фреймворки и библиотеки для Scoped CSS (с использованием стилей записи JS или JSON, таких как Radium, jsxstyle, стиль, привязка к webpack с использованием сгенерированного уникального 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 > 

Вы также можете использовать тег как кнопка непосредственно в 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   #  выпуск  

Описание в каталоге:

  ├─ config
├─ общественность
├─ скрипты
├─ src
│ ├─ активы
│ ├─ elements // Хранить все пользовательские элементы
│ ├─ store // Хранить все это хранилище страниц
│ ├─ admin.js // Запись js компилятора, будет создана для admin.html
│ └─ index.js // Запись js компилятора, будет создана для index.html
 

Автосозданные строительные леса CLI основаны на одностраничном приложении create-response-app, которое будет преобразовано в многостраничное, с проблемами конфигурации, чтобы увидеть руководство пользователя для создания-реагирования-приложения

Hello Element

Определите пользовательский элемент, расширив WeElement базовый класс и назовите его с помощью @tag decorator:

  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 > 
      )
    }
} 

Использование hello-element :

  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 в Omi.h () звонок:

 {
     presets  " : [ "  env  "   " оми "  ]
} 

Для поддержки вышеуказанной конфигурации необходимо установить следующие два пакета NPM:

   " babel-preset-env "  :   " ^ 1.6.0 "  ,
  " babel-preset-omi "  :   " ^ 0,1.1 "   , 

Если вы не хотите писать CSS в JS, вы можете использовать to-string-loader,
Например, следующая конфигурация:

 {
  :    /   [   |   / ]  _  [ ]  S ]   *   .  CSS  $   /  ,
  использование :  [
       в строке-загрузчик   ,
       CSS-погрузчик   
  ]
} 

Если ваш файл CSS начинается с « _ », CSS будет использовать для-string-loader ., Например:

  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  -  приложение  /  >   ' тело   ) 

Магазин

Попробуйте this.update метод при использовании системы магазинов! При изменении данных он будет автоматически обновлять пользовательский интерфейс. Мощная архитектура Store отличается высокой производительностью, поскольку все данные монтируются в хранилище, за исключением компонентов, которые полагаются на опоры для определения состояния компонента.

  экспорт   по умолчанию  {
  данные :  {
    пункты :  [],
    текст :    ' '  ,
    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  ()
     это .  магазин .  добавить  ()
  }
} 

  • Логика данных инкапсулирована в методе определения хранилища (например, store.add ).
  • Взгляды — это только ответственные за передачу данных для хранения таких как вызов store.add или установка store.data.text сверху.

Вам нужно ввести магазин из корневого узла во время рендеринга, чтобы использовать этот магазин:

    < todo  -  приложение  /  >    тело  ' магазин) 

→ Сохранить исходный код

Резюме:

  • store.data используется для отображения всех атрибутов и значений по умолчанию (кроме компонентов представления, определенных реквизитами).
  • Данные компонента и страницы используются для перечисления атрибутов зависимого store.data (Omi будет записывать путь) и обновления по запросу.
  • Если на странице несколько простых компонентов, updateAll может быть установлено в true а компонентам и страницам не нужно декларировать данные, и они не обновляются по запросу
  • Путь, объявленный в globalData обновляет все страницы и компоненты, изменяя значение соответствующего пути, который может использоваться для отображения всех страниц или большинства путей общедоступных свойств

Жизненный цикл

Метод жизненного цикла Когда его назовут
установите перед тем, как компонент подключится к DOM
установлен после того, как компонент подключается к DOM
удалить до снятия с DOM
BeforeUpdate до render ()
AfterUpdate после render ()

Компонентная экосистема

Я считаю, что вы можете легко преобразовать элементы веб-компонентов в элементы omi.

Отладка

Используя Omi DevTools, вы можете просто отлаживать и управлять своим пользовательским интерфейсом без какой-либо конфигурации . Просто установите и отлаживайте.

Поскольку Omi использует веб-компоненты и Shadow-DOM, ему не нужно иметь другую панель элементов, такую ​​как React или Vue. Он просто добавляет панель к боковой панели элементов и она настолько же эффективна, как и React и Vue DevTools.

Поддержка браузеров

Omi 4.0+ работает в последних двух версиях всех основных браузеров: Safari 10+, IE 11+ и вечнозеленых Chrome, Firefox и Edge.

Ссылки

Вклад

  1. Вилка (https://github.com/Tencent/omi/fork)
  2. Создайте свою ветку ( git checkout -b мое-срочное исправление )
  3. Зафиксируйте свои изменения ( git commit -am «Исправлено что-то» )
  4. Нажмите на ветку ( git push origin my-emergency-hotfix )
  5. Создайте новый запрос Pull

Пожалуйста, свяжитесь с нами по любым вопросам:

Лицензия

MIT © Tencent

25 квадратных логотипов, чтобы держать вас на месте

Существует множество причин выбора дизайна квадратного логотипа. Квадратные логотипы могут представлять собой самые разные вещи, включая прочность, надежность, структуру и организацию. Если это звучит как ценности, которые резонируют с вашим бизнесом, продолжайте читать! Мы собрали несколько вдохновляющих примеров, которые спровоцируют ваше воображение и покажут, почему это бедра, чтобы быть квадратным.

Квадратные логотипы, демонстрирующие силу

 Сильный квадратный логотип "width =" 1049 "height =" 477 "/> 
 
<figcaption> by sheva ™ </figcaption></figure>
<p> Квадраты — один из строительных блоков нашей цивилизации. Их можно увидеть повсюду от архитектурного дизайна до денежных сейфов. По этим причинам они часто дают зрителям впечатление силы, и многие компании используют это в своих дизайнах логотипов. </p>
<p> Возьмите логотип BearBox, который представляет компанию, которая устанавливает мобильные центры обработки данных в сложных условиях. Квадратная форма логотипа медведя дает потребителям впечатления о том, что центры обработки данных прочны и устойчивы к любому элементу, с которым они могут столкнуться. Аналогичным образом, квадратный логотип для MainDoor имеет смелый и сильный внешний вид, который идеально подходит для компании, предлагающей услуги по обслуживанию противопожарных дверей. Предлагает ли ваша компания услугу, связанную с силой и сопротивляемостью? Попробуйте квадратный логотип в следующем дизайне! </p>
<h2> Квадратные логотипы, которые подчеркивают геометрию <br /> — </h2>
<p> Квадраты являются одной из самых фундаментальных геометрических форм, что делает их отличными для предприятий, связанных с такими темами, как трехмерная печать, дизайн интерьера или даже художественная академия. Нам особенно нравится, как логотип для Джорджа Винсента имеет несколько асимметричных геометрических линий в квадрате, которые хорошо говорят о сервисах дизайна интерьера, предлагаемых этим бизнесом. Простая геометрия связана с вашим бизнесом? Начните здесь за вдохновение! </p>
<h2> Квадратные логотипы, которые представляют структуру и организацию <br /> — </h2>
<p> Одна из приятных особенностей квадратов заключается в том, что они аккуратно подходят с другими клетками — думаю, ящики для молока и коробки для транспортировки. По этим причинам квадраты создают впечатление структуры и организации. </p>
<p> Взглянув на квадраты с этого угла, мы можем понять, почему квадратный логотип отлично подойдет для компании, которая проектирует жилые кварталы, бизнес, который продает угощения в аккуратно упакованных клетках или даже компанию, которая предлагает прекрасно организованную подписку на подписку. Ваш бизнес гордится структурой и организацией? Попробуйте квадратный логотип для вас, следующий дизайн! </p>
<h2> Квадратные логотипы, которые подчеркивают простоту <br /> — </h2>
<div class='code-block code-block-3 ai-viewport-1 ai-viewport-2' style='margin: 8px 0; clear: both;'>
<!-- Yandex.RTB R-A-268541-2 -->
<div id=

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

Разрушение площади

 Квадратный логотип, который выходит из коробки «width =« 1500 »height =« 529 »/> 
 
<figcaption> от fatboyjim </figcaption></figure>
<p>. Квадраты также предлагают рамки, чтобы вырваться из этого, что делает их отличными для компаний, которые хотят показать клиентам, что они думают нестандартно. Квадратные логотипы выше представляют собой поисковую систему поиска предметов искусства, пользовательский веб-сайт домашнего / офисного искусства с веб-приложением mockup и чашки для шейкера для фитнес-индустрии, чтобы назвать несколько. Если ваш бизнес также нарушает норму или предлагает что-то, о чем еще не подумали, не стесняйтесь выходить из площади! </p>
<h2> Подумайте внутри и вне коробки <br /> — </h2>
<p> Увидев приведенные выше примеры, вы должны теперь лучше понять, как квадраты могут применяться к вашему следующему дизайну логотипа. Есть так много, что вы можете сделать с простой формой, если вы думаете, что вне коробки. Если какая-либо из категорий, которые мы затронули, относится к вашим бизнес-ценностям, не стесняйтесь пересматривать эту статью для вдохновения, поскольку ваш следующий логотип формируется (в пределах квадрата, конечно). </p>
<div class=

Ищете идеальный квадратный логотип для формирования своего бренда?
Наши дизайнеры могут найти правильный угол для вашего нового логотипа.

На ярмарке FIAC в Париже столпотворение • ARTANDHOUSES

С 18 по 21 октября в одном из самых красивых зданий Парижа, Grand Palais, проходит ярмарка современного искусства FIAC. За день до официального открытия состоялось превью для коллекционеров. Можно считать, что мероприятия вокруг ярмарки, которых традиционно в Париже в это время множество, начались еще в понедельник с открытия выставки аргентинского художника Томаса Сарасено в огромном…

Go to Top