具有Web组件“ is”属性的Vue

时间:2019-08-06 21:54:29

标签: vue.js web-component

我正在尝试使用Web组件,该组件使用“ is”属性标记扩展现有元素,但是vue接受该属性并将其转换为自定义元素。

我需要vue仍然可以识别v模型和业务逻辑,但是我也需要vue不要将其更改为自定义组件。

Vue会这样:

<textarea v-model="text" is="my-component"></textarea>

进入:

<my-component></my-component>

我尝试设置“ v-pre”,但是这使vue无法跟踪v模型。我也尝试设置了ignoreElements,但是vue仍然转换为自定义元素。我看着https://github.com/vuejs/vue/issues/2642,看来这应该是一个固定的问题,但也许我遗漏了一些东西。

以下是发生的情况的最小示例:https://jsfiddle.net/ntkg1xeq/1/

请注意,在此示例中,文本区域变为实景。

如果它不匹配任何已注册的组件,我希望vue忽略“ is”属性,并且不重写该元素,从而阻止Web组件工作。

有什么办法可以同时使用vue和Web组件吗?

1 个答案:

答案 0 :(得分:0)

根据Web component with "is" attribute not rendered in the view.的最后评论,<textarea v-pre v-model="text" is="my-component"></textarea>将是 按照您的期望呈现给<textarea is="my-component">。但是,似乎该问题只是修复了Vue 1.x(Vue 1.0.12 example code),而不是Vue 2.x(your example code)。

所以。如果您想在is中设置textarea属性并使v-model在Vue 2.x中工作,我想$refs是另一种解决方案(Vue 2.x example code by using $refs)。