vue中让子组件修改父组件数据的方法

vue中让子组件修改父组件数据的方法

一、关于vue中watch的认识

我们要监听一个属性的的变化就使用watch一般是父组件传递给子组件的时候

•1、常见的使用场景

...watch:{  value(val) {    console.log(val);    this.visible = val;  }}...

登录后复制

相关学习推荐:javascript视频教程

•2、如果要一开始就执行

立即学习“前端免费学习笔记(深入)”;

...watch: {  firstName: {    handler(newName, oldName) {      this.fullName = newName + '-' + this.lastName;    },    immediate: true,  }}...

登录后复制

•3、深度监听(数组、对象)

...watch: {  obj: {    handler(newName, oldName) {    console.log('///')  },  immediate: true,  deep: true,}...

登录后复制

二、关于子组件修改父组件属性认识

在vue2.0+ 后不再是双向绑定,如果要进行双向绑定需要特殊处理。

[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “你修改的属性名”

•1、通过事件发送给父组件来修改

**在子组件test1中**

{{item}}

...methods: {  add() {    // 直接把数据发送给父组件    this.$emit('update', this.book);    this.book = '';  },},**在父组件中**...addBook(val) {  this.books = new Array(val)},

登录后复制

•2、使用.sync 来让子组件修改父组件的值(其实是上面方法的精简版)

**在父组件中,直接在需要传递的属性后面加上.sync****在子组件中**  

    

{{word}}

      export default { props: { word: { type: String, default: '', }, }, data() { return { str: '', } }, watch: { str(newVal, oldVal) { // 在监听你使用update事件来更新word,而在父组件不需要调用该函数 this.$emit('update:word', newVal); } }}

登录后复制

•3、在子组件中拷贝一份副本

**子组件中**export default {  props: {    // 已经选中的    checkModalGroup: {      type: Array,      default: [],      required: false,    }  },  data() {    return{      copyCheckModalGroup: this.checkModalGroup, // 选中的    }  },  methods: {    // 一个一个的选择    checkAllGroupChange(data) {      // 把当前的发送给父组件      this.$emit('updata', data);    },  },  watch: {    checkModalGroup(newVal, oldVal) {      this.copyCheckModalGroup = newVal;    }  }}**父组件中直接更新传递给子组件的数据就可以**...// 更新子组件数据roleCheckUpdata(data) {  this.roleGroup = data;},...

登录后复制

相关学习推荐:编程视频

以上就是vue中让子组件修改父组件数据的方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2726302.html

(0)
上一篇 2025年3月7日 23:30:27
下一篇 2025年2月19日 22:31:14

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论