:value="fn()" 和 @change="fn" 的触发时机
:value="fn()" 和 @change="fn" 的触发时机
:value="fn()":渲染时立即执行(用于获取显示值)
@change="fn":用户操作触发时执行(用于响应事件)
<div v-for="item in listArr" :key="item.id">
<el-input
:readonly="true"
:value="handleSelectMonitorObj(item)"
class="set-input-width320"
>
<template #append>
<el-button class="selectType" text size="small" @click="handleSelectMonitorObj(item)">
选择
</el-button>
</template>
</el-input>
</div>
let listArr= ref([
{id:1, showPageText:[]}
])
function handleSelectMonitorObj(params) {
console.log('为啥这个初始化的时候会被执行', params)
}
handleSelectMonitorObj事件由于是通过:value="fn()"的形式绑定事件,会在渲染时就会触发。
v-bind(即 :)是响应式属性绑定。
Vue 在渲染视图(初始化)时。需要计算 value 的值来显示在输入框中。
因此,它会立即执行 handleSelectMonitorObj(item) 并获取其返回值来填充 value。
只要 listArr 发生变化,或者父组件重新渲染,这个函数都会被重新执行。
<el-radio-group v-model="radio" @change="radioTypeChange">
<el-radio :value="3">Option A</el-radio>
<el-radio :value="6">Option B</el-radio>
<el-radio :value="9">Option C</el-radio>
</el-radio-group>
unction radioTypeChange(){
console.log('这个初始化不会被执行')
}
因为 @change 是事件监听绑定。
它的作用仅仅是把 radioTypeChange 函数注册给 el-radio-group 组件的 change 事件。
事件的触发条件是:用户操作导致 v-model="radio" 绑定的值发生变化。
在组件初始化挂载时,只是绑定监听器,并没有触发 change 事件,所以它不会执行。
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识
出处:https://www.cnblogs.com/IwishIcould/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/IwishIcould/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
支付宝
微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。

浙公网安备 33010602011771号