组件创建完成以后是否可以手动修改props
来源:10-5 Modal组件编码
慕莱坞0998854
2021-05-18
老师你好,我想创建一个createModal函数,回想起createMessage函数,其实现为以下这段
在timeout之后就销毁message
那么现在是modal组件,我们该在什么时候去销毁呢?在关闭之后销毁,那么我们该把这段代码放在哪个地方呢?放在Modal组件内部?我尝试着把逻辑写在创建组件实例之后
如上,在关闭Modal的时候,emit一个destroy事件,在创建modalInstance之后,手动给props上添加一个onDestroy函数,
代码运行没问题,
但是仔细观察_props以下划线开头,似乎意味着这是个私有的变量是不希望被外部使用的,所以我有点迷茫,我们不可以在创建组件实例之后在手动修改props吗?
写回答
1回答
-
张轩
2021-05-18
同学你好 很专业的问题 instance 上面的 props 的值是不可以更改的,这个值是 readonly 的,你可以在组件内部创建一个响应式对象, const messageCopy = ref(props.message) 然后在实例上改变这个值。
const mountNode = document.createElement('div') document.body.appendChild(mountNode) // vm 返回的是整个组件响应式对象 你可以 console 出来看看 const vm = messageInstance.mount(mountNode) as any setTimeout(() => { vm.messageCopy = 'new message'}, timeout)
032021-05-18
相似问题