Re: [WICG/webcomponents] Preventing re-renders prior to first call to `connectedCallback()` (Issue #1081)

Thank you everyone for the in-depth explanations.  I need to do some experimentation to see if I'll be affected by some of these cases due to the specific way I'm creating custom elements.

For background, I am building a templating library that allows mixing JS and HTML to create custom elements similar to what you see in back-end template libraries like Ruby's ERB, and ASP.NETs Razor where native code is mixed with HTML. I suspect I'll encounter several roadblocks on this journey.

An example I have working is:

```html
<html>
<head>
  <script type="module" src="../jst.js"></script>
</head>

<script type="jst" name="jst-counter" count :increment>
  $ const clicks = count == 1 ? 'click' : 'clicks'
  <button onmousedown="$increment">$(count || 0) $clicks</button>
</script>

<body>
    <jst-counter count="5" :increment="incrementCounter(this)"></jst-counter>

    <script>
      function incrementCounter(el) {
        ++el.attributes.count.value
      }
    </script>
</body>
```

I next want to implement slots, however, based on the feedback from @WebReflection, I now suspect I will encounter issues with this:

```html
<html>
<head>
  <script type="module" src="../jst.js"></script>
</head>

<script type="jst" name="jst-condition" condition>
  $ if (condition) {
    <slot name="true"></slot>
  $ } else {
    <slot name="false"></slot>
  $ }
</script>

<body>
    <script>
      const someVar = true;
    <script>

    <jst-condition condition="someVar">
      <span slot="true">someVar was true</span>
      <span slot="true">someVar was false</span>
    </jst-condition>
</body>
```

The user should be able to do anything custom elements can like extend other classes, and the myriad of other custom element features that exists:

```html
<script type="jst" name="jst-checkbox" extend="HTMLInputElement" extend-type="HTMLInputElement">
   ...content...
</script>
```

Effectively, I', trying to create a declarative way of writing custom elements.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/issues/1081#issuecomment-2425236444
You are receiving this because you are subscribed to this thread.

Message ID: <WICG/webcomponents/issues/1081/2425236444@github.com>

Received on Sunday, 20 October 2024 21:40:59 UTC