Size: a a a

Веб-компоненты

2021 January 18

A

Alexandr in Веб-компоненты
Ребят, не поскажите есть ли в litElement возможность импортировать стили не таким образом
 render() {
       return html`
           <style>
               ${styles}
           </style>

а подключать их сразу прямым импортом?
Или это настройки вебпака просто?
источник

ИЛ

Иван Лещёв in Веб-компоненты
Alexandr
Ребят, не поскажите есть ли в litElement возможность импортировать стили не таким образом
 render() {
       return html`
           <style>
               ${styles}
           </style>

а подключать их сразу прямым импортом?
Или это настройки вебпака просто?
в смысле? какой должен получится формат?
источник

SK

Serhii Kulykov in Веб-компоненты
можно использовать static get styles() и шаблонный литерал css`` для стилей. но все равно лоадер для вебпака понадобится
источник

A

Alexandr in Веб-компоненты
Serhii Kulykov
можно использовать static get styles() и шаблонный литерал css`` для стилей. но все равно лоадер для вебпака понадобится
Спасибо, понял
источник

SK

Serhii Kulykov in Веб-компоненты
lit-css-loader поищите
источник

A

Alexandr in Веб-компоненты
Serhii Kulykov
lit-css-loader поищите
не я скорее имел ввиду если стили прописаны в другом файле, то подключать их просто импортом без обьявленя в рендере либо же через get Styles()
источник

ИЛ

Иван Лещёв in Веб-компоненты
нет разницы для яваскрипта жы
<style>${style}</style> ${this.template}
<style>${require('./x-icon.inline.scss')}</style> ${this.template}
источник

ИЛ

Иван Лещёв in Веб-компоненты
но лоадер я писал сам
источник

SK

Serhii Kulykov in Веб-компоненты
отличие в том, что стили, передаваемые в static get styles() в хроме используют constructable stylesheets, в остальных браузерах - сериализуются в <style>
источник
2021 January 19

SK

Serhii Kulykov in Веб-компоненты
статья о библиотеке three-elements  https://hmans.co/posts/2021-01-18-three-elements/
источник

SK

Serhii Kulykov in Веб-компоненты
и минутка рекламы: мы в Vaadin сейчас ищем разработчика в мою команду. если интересно, обращайтесь 🙂

https://twitter.com/iamkulykov/status/1351445894005141504
источник

AY

Andrey Yamanov in Веб-компоненты
Всё жду когда будет такое же, но для https://zzz.dog/ 🙂 Может сам когда-нибудь напишу.
источник

АР

Алексей Родионов... in Веб-компоненты
Не очень понял, как они сделали, что это работает (я про 4 строку)?
источник

AY

Andrey Yamanov in Веб-компоненты
Алексей Родионов
Не очень понял, как они сделали, что это работает (я про 4 строку)?
eval? 🙂
источник

A

Alexandr in Веб-компоненты
Народ, допустимо ли в litElement разделять логику от разметки таким образом

function template(props) {
   return html`<btn @click={()=>props.add()}">Add</btn>`;
 }


class App extends LitElement {
 add(){
   ...
 }
 
 render() {
   return html`
     ${template({
     add: this.add.bind(this)
   })
   
 }
либо же для этого лучше использовать slot?
источник

VF

Valentin Fedyakov in Веб-компоненты
slot используют что бы прокинуть элемент из light dom в shadow dom
источник

VF

Valentin Fedyakov in Веб-компоненты
в твоем случае достаточно писать все в одном компоненте
источник

SK

Serhii Kulykov in Веб-компоненты
стрелочные функции пересоздаются при каждом рендере, и .bind(this) тоже. так что возможно это не будет эффективным
источник

A

Alexandr in Веб-компоненты
Serhii Kulykov
стрелочные функции пересоздаются при каждом рендере, и .bind(this) тоже. так что возможно это не будет эффективным
можно забайндить в кострукторе или же есть способ лучше для разделеия логики? не нашел примеров как это сделать правильно
источник

S

Sasha in Веб-компоненты
Alexandr
Народ, допустимо ли в litElement разделять логику от разметки таким образом

function template(props) {
   return html`<btn @click={()=>props.add()}">Add</btn>`;
 }


class App extends LitElement {
 add(){
   ...
 }
 
 render() {
   return html`
     ${template({
     add: this.add.bind(this)
   })
   
 }
либо же для этого лучше использовать slot?
а зачем так делать? выглядит как попытка мигрировать функциональный компонент из реакта в лит
источник