将 Vue.js 与 Polymer 的 Paper-Elements 等 WebComponents 一起使用
Using Vue.js with WebComponents like Paper-Elements by Polymer
我正在制作一个 Web 应用程序(服务器呈现,而不是 SPA),但具有一些客户端功能,例如当其他元素具有某些值时隐藏元素、进行 HTTP 调用或验证某些输入字段。
现在,我正在使用 WebComponents(纸元素和其他)制作 UI,以及 Vanilla JavaScript(使用一些 Polyfill,例如 WebComponents.js 或 fetch.js) 来实现功能。
然而,到目前为止,我已经意识到我有很多 JavaScript 行可以做一些事情(例如如果不满足条件则隐藏输入字段)可以减少(甚至删除)像 Vue.js 这样的框架和带有指令的表达性 HTML。
我的问题是,当我尝试将 Vue.js 与纸元素或其他元素一起使用时,Vue.js 指令如 v-model
不起作用(即使是纸元素value 属性是 value
,就像标准 HTML 元素一样)。
我尝试使用 :value
而不是 v-model
,这很有效,但只有单向数据绑定(这在 v-bind
中很正常)但我需要双向数据paper-elements
和 v-model
中的绑定不起作用。
一个想法可以是,在使用冒号(v-bind
的shorthand)表示一种方式数据绑定时,(例如:disabled="someCondition"
),使用两个冒号表示两种方式任何属性中的数据绑定(在某些 WebComponents 中,在 value
之外的其他 HTML 属性中执行此操作很有用)(例如 ::value
)。
有人知道任何具有表达式 HTML 的框架,例如 Vue.js,它实现了数据绑定(任何 html 属性中的两种方式)和基本控制结构(例如 v-if
和v-repeat
) 或使用 Vue.js 在任何 HTML 属性中执行两种数据绑定方式(o 更简单,v-model 与 paper-elements 一起工作)。
我不知道如何制作 Vue.js 的 WebComponents 功能,因为我使用 Polymer 来做到这一点。
谢谢!
是的,可以用 aurelia 做到这一点:
<input value.two-way="variable">
使用 VueJs 你可以做到
:value="value" @input="value = $event.target.value"
而不是v-model="value"
我正在制作一个 Web 应用程序(服务器呈现,而不是 SPA),但具有一些客户端功能,例如当其他元素具有某些值时隐藏元素、进行 HTTP 调用或验证某些输入字段。
现在,我正在使用 WebComponents(纸元素和其他)制作 UI,以及 Vanilla JavaScript(使用一些 Polyfill,例如 WebComponents.js 或 fetch.js) 来实现功能。
然而,到目前为止,我已经意识到我有很多 JavaScript 行可以做一些事情(例如如果不满足条件则隐藏输入字段)可以减少(甚至删除)像 Vue.js 这样的框架和带有指令的表达性 HTML。
我的问题是,当我尝试将 Vue.js 与纸元素或其他元素一起使用时,Vue.js 指令如 v-model
不起作用(即使是纸元素value 属性是 value
,就像标准 HTML 元素一样)。
我尝试使用 :value
而不是 v-model
,这很有效,但只有单向数据绑定(这在 v-bind
中很正常)但我需要双向数据paper-elements
和 v-model
中的绑定不起作用。
一个想法可以是,在使用冒号(v-bind
的shorthand)表示一种方式数据绑定时,(例如:disabled="someCondition"
),使用两个冒号表示两种方式任何属性中的数据绑定(在某些 WebComponents 中,在 value
之外的其他 HTML 属性中执行此操作很有用)(例如 ::value
)。
有人知道任何具有表达式 HTML 的框架,例如 Vue.js,它实现了数据绑定(任何 html 属性中的两种方式)和基本控制结构(例如 v-if
和v-repeat
) 或使用 Vue.js 在任何 HTML 属性中执行两种数据绑定方式(o 更简单,v-model 与 paper-elements 一起工作)。
我不知道如何制作 Vue.js 的 WebComponents 功能,因为我使用 Polymer 来做到这一点。
谢谢!
是的,可以用 aurelia 做到这一点:
<input value.two-way="variable">
使用 VueJs 你可以做到
:value="value" @input="value = $event.target.value"
而不是v-model="value"