自定义组件样式:host()使用标签会被过滤的问题
发布于 4 年前 作者 yan34 8862 次浏览 来自 问答

目前自定义组件可以使用:host(.test)给具有.test类名的组件设置样式;

开发者工具调试发现:host(.test)会被编译为类似.test[is=“components/ui-button/ui-button”]的选择器。

可当我尝试使用标签,而非类名时,如:host(ui-button);发现编译时会过滤掉括号以及其中的内容,选择器会变成:host;

我知道为了避免污染自定义组件中禁止了标签选择器,可:host(ui-button)若是被编译成ui-button[is=“components/ui-button/ui-button”],应该是不会存在污染问题的;希望使用:host(ui-button)这种写法时不再过滤括号及其中内容。

如果支持这种写法,可以根据usingComponents中定义的组件名,使用不同的样式,而不需要再写class,使用起来会方便许多。

1 回复

:host(…) 的写法现在有 bug (即使是使用 class )。所以现在并不推荐这么做。

不过你的建议看起来还不错。我们之后会考虑支持。

回到顶部