// vue 子组建 在里面默认了一个prop
props: {
limit: {
type: Number,
default: 15
},
}
handClick(){
this.$emit( 'update:limit', 100); // 子组件通过发送emit ,让父组件回调事件修改
},
~
问题:
理论上 父组件 通过 limt.sync = 值 就可以实现一个prop的双向绑定,但是大部分 父组件在 调二封的分页组件 都没有做这个。
所以上面的 $emit 无效。
目前的解决办法是直接 this.limtt = val ; 控制台报错 '不能直接修改 prop 过来的值‘ 。虽然这样功能实现了,但多少有点不优雅;
有没有更好的办法
~
没有比较好的方法,如果你想要双向绑定prop的值,必须用v-model或者sync,这样就必须在每个父页面上使用 v-model:limit 或者 limit.sync
那就this.$parent.父组件ref名.limit = 100,这个也要求父组件ref名在多个使用的地方要一样。我觉得最优雅的是不是直接去找到这些使用的父组件地方,就使用这种:limit.sync="值"的方式,虽然说可能要改的地方多,但是正规军啊