使用 Vue.js 与 WebComponents 一起,如 Paper-Elements by Polymer



我正在制作一个Web应用程序(服务器渲染,而不是SPA),但具有一些客户端功能,例如当其他元素具有某些值时隐藏元素,进行HTTP调用或验证某些输入字段。

现在,我正在使用WebComponents(paper-elements和其他)来制作UI,并使用Vanilla JavaScript(带有一些Polyfills,例如WebComponents.js或fetch.js)来执行功能。

然而,到目前为止,我已经意识到我有很多JavaScript行可以做一些事情(例如,如果不满足条件则隐藏输入字段),这些行可以通过Vue这样的框架减少(甚至删除).js以及带有指令的解释性HTML。

我的问题是,当我尝试使用 Vue.js 与 paper-elements 或其他元素时,像v-model这样的 Vue.js 指令不起作用(甚至 paper-element value 属性也像标准 HTML 元素一样value)。

我尝试使用:value而不是v-model,这有效,但只能使用单向数据绑定(这在v-bind中是正常的),但我需要在paper-elements中进行双向数据绑定,v-model不起作用。

一个想法可以是,同时使用冒号(v-bind的简写)来指示单向数据绑定,(例如:disabled="someCondition"),使用两个冒号来表示任何属性中的双向数据绑定(在某些 WebComponents 中,在value以外的其他 HTML 属性中执行此操作很有用)(例如::value)。

有人知道任何像 Vue 这样具有解释性 HTML 的框架.js它实现了数据绑定(任何 html 属性中的双向)和基本控制结构(如v-ifv-repeat),或者使用 Vue 在任何 HTML 属性中进行两种方式的数据绑定.js(更简单的是,使用 paper-elements 进行 v 模型工作)。

我不知道制作 Vue.js 的 WebComponents 功能,因为我使用 Polymer 来做到这一点。

谢谢!

你可以用 VueJs 做:value="value" @input="value = $event.target.value"

而不是v-model="value"

是的,可以用 aurelia 来做到这一点:

<input value.two-way="variable">

最新更新