I'm building a set of components which can have variants in their behavior.
More specific, I have a x-tag
component, which can behave as a <span>
that simply renders text or an <a>
that also renders text and links to another route.
For the "link" part I'm using the link component provided by Ember (which is the link-to
) to not reimplement all the routing logic by myself.
The ideal would be to only have two components:
x-tag
, simple text version that handles the base logic.x-tag-link-to
, link version which should be a component extending from thelink-to
andx-tag
components.
Since you cannot extend from two components, I moved the logic in the x-tag
component into a tag
mixin. So the components ended up like this:
x-tag
, compoents that implements thetag
mixin.x-tag-link-to
, compoents that extends thelink-to
component and also implements thetag
mixin.
This solves the problem, but is confusing having the logic in several files, also I have a lot more components like the tag that also have a link version, filling the mixins folder with a lot of mixins which have almost the whole component logic. That just feels wrong, or is this the right approach?
I can provide code examples if needed.
Aucun commentaire:
Enregistrer un commentaire