- From: snuggs <notifications@github.com>
- Date: Sat, 09 Sep 2017 17:51:54 +0000 (UTC)
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/webcomponents/issues/662/328293311@github.com>
> And here's what getting those components from an element and calling a method looks like: The following feels very [🚂 🚋 🚋 🚋 wreck](http://wiki.c2.com/?TrainWreck) pattern IMHO. ```javascript anyElement.behaviors.foo.someMethod() ``` ```javascript class Foo { ... } elementBehaviors.define('foo', Foo, {limit: [HTMLMapElement, WebMap]}) ``` This pattern feels very 🇨🇠Army Knife™ to me. Usually API confusion leads to footguns. Best to keep `.define` semantics as ergonomically friendly as possible. If i'm not mistaken a _"small"_ change like this could increase the complexity of the upgrade routine. Not sure if the value is worth it IMHO. > I think it'd be beneficial to have one simple clean new idea without mixing it with the confusing and limited existing functionality. @trusktr I concur 💯 however in the "simple and clean" category these examples leave much to be desired. I do like the concept of "enhanced" elements re: @wiredearp ```html <table is=custom-element> ``` And the ability to not have to extend from HTMLElement is a nice thought as well. But certainly feel this can be implemented at the library level with ease. Perhaps conventions for `:undefined` "enhanced" elements can be made around `is=`. For instance since there would be no need to `.define ()` an upgrade for the element. The lifecycle callbacks are trivial to `.call` as well. This even leaves room for `is=foo` but but this could be potential bike shedding. Gut instinct says a couple of nice conventions could arise from this at the library level. However, we should be cautious of breaking [Ockham's Razor](https://simple.wikipedia.org/wiki/Occam%27s_razor) at the spec level. My 2 Satoshi P.S. @trusktr, skating since late 90's #rad :metal: -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/webcomponents/issues/662#issuecomment-328293311
Received on Saturday, 9 September 2017 17:52:17 UTC