Javascript Vue:如何将属性动态绑定到新的DOM元素
例如,我有一个具有以下模板的组件:Javascript Vue:如何将属性动态绑定到新的DOM元素,javascript,jquery,vue.js,vuejs2,Javascript,Jquery,Vue.js,Vuejs2,例如,我有一个具有以下模板的组件: <div id="root"></div> 我认为新生元素的绑定将不起作用,因为Vue对这个新元素及其绑定一无所知 但是,也许有一些方法可以实现所需的逻辑 PS我知道Vue的本质是处理数据,而不是DOM,但我必须处理这种情况。您可以先绑定没有值的样式 data() { return { styles: { a1: '' } }; } 然后,您可以通过普通JS从事件向其中添加数据。(这里甚至不需要JQuery)
<div id="root"></div>
我认为新生元素的绑定将不起作用,因为Vue对这个新元素及其绑定一无所知
但是,也许有一些方法可以实现所需的逻辑
PS我知道Vue的本质是处理数据,而不是DOM,但我必须处理这种情况。您可以先绑定没有值的样式
data() {
return {
styles: { a1: '' }
};
}
然后,您可以通过普通JS从事件向其中添加数据。(这里甚至不需要JQuery)
编辑:我搞错了。似乎Vue在安装后不会检测到新添加的元素。因此,您可以在添加附加元素后装载Vue实例,或者使用forceUpdate
重新渲染整个实例。(后者将重新呈现整个实例,因此为了提高性能,我建议将其分解为多个Vue实例)
如果使用的是Vue组件,则不应操作DOM
- 您应该使用模板逻辑来实现这一点
- 将非Vue代码包装到它自己的Vue组件中
Vue.component('date-picker'{ 模板:“”, 挂载:函数(){ $(this.$el).datepicker(); }, beforeDestroy:function(){ $(this.$el).datepicker('hide').datepicker('destroy'); } });
- 使用一个
Vue.directive('demo'{ 绑定:函数(){ css({color:'#fff',backgroundColor:this.arg}); }, 更新:函数(值){ $(this.el).html( '参数-'+this.arg+'!
'+ “键-”+this.key+”
'+ “价值-”+价值); } });
v-html
添加更多html,但无法向其添加指令。您可以添加有关使用字符串模板的更多信息吗elp?我不能使用任何模板逻辑,因为在我的例子中,模板可以是任何东西。另一件事是,我必须在安装和呈现模板后添加新元素。如果我事先不知道新元素是什么,我看不出自定义指令会有什么帮助。
data() {
return {
styles: { a1: {color: 'red'} }
};
}
data() {
return {
styles: { a1: '' }
};
}
methods: {
quack() {
this.styles.a1 = { color: red }
}
}