vue 函数式组件如何添加监听watch
我有这样一段代码,动态生成组件,
Vue.component("ht-vnode", {
functional: true,
render: (h, ctx) => {
// 复制父组件的属性到子组件中
let assembly = {
...ctx.props.vnode.componentOptions.propsData,
...ctx.props
};
delete assembly["vnode"];
ctx.props.vnode.componentOptions.propsData = assembly;
ctx.props.vnode.componentOptions.listeners = ctx.listeners;
// ctx.props.vnode.context.
console.log('ctx===', ctx)
return ctx.props.vnode;
}
});
};
然后在其它组件里面这样使用:
<ht-vnode :vnode="vnode" :label-width="labelWidth" @enter-search="search" @field-loaded="handleFieldLoaded"
@input-change="handleInputChange" @change-options="handleOptionsChange"/>
现在的问题是我的ht-vnode组件里面有个props属性想监听它的变化,如何处理呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
什么是函数式组件
没有管理任何状态,也没有监听任何传递给它的状态,也没有生命周期方法,它只是一个接受一些 prop 的函数。简单来说是 一个无状态和无实例的组件
那你就不应该用 Functional Components,它的定位就是非响应式的。
【补充:评论区的示例代码】
这样当你输入值就会触发 watchHandler 了。注意会有两个触发事件,一个是外层那个 Field 组件的选中状态改变;一个是里面那个 Input 组件输入值改变。