vue使用v-model进行跨组件绑定的基本实现方法


Posted in Vue.js onApril 28, 2021

大家好,今天我们来说一下使用v-model实现父子组件的绑定效果

1:简单版代码如下:

父组件:

<template>
  <div>
  // 3:使用子组件,并使用v-model绑定
    <About v-model="father"/>
  </div>
</template>

<script>
// 1:引入子组件
import About from "./About";
export default {
// 2:注册子组件
  components: {
    About,
  },
  data() {
      return {
      // 值给空
          father:''
      }
  },
  // 监听组件数据的变化
  watch:{
      father(val){
          console.log(val);
      }
  }
};
</script>

子组件:

<template>
  <div>
  // 2:使用v-model绑定
      <input type="text" v-model="son">
  </div>
</template>

<script>
export default {
    // 1:接收父组件的信息
    props: {
        value:{
            type:String,
            default:''
        }
    },
    data() {
        return {
        // 3:赋空值
            son:''
        }
    },
    // 4:监听 如果改变
    watch:{
        // 把value赋值给son   
        value(){
        // 这里的this.value是props里的value
            this.son = this.value
        },
        // 把son传递给父组件
        son(){
            this.$emit('input',this.son)
        }
    }
}
</script>

至于为什么子组件向父组件传递时,$emit的第一个参数为'input',有兴趣的同行可以去了解一下v-model实现的原理

2:下面进入项目中的使用(获取子组件的图片地址,传给父组件,同步更新图片信息)

基本上差不多

Ⅰ:在父组件内引入子组件,并在子组件标签内使用v-model,赋值为空
(UploadImg标签 是引入的 子组件)

vue使用v-model进行跨组件绑定的基本实现方法

Ⅱ:接着在子组件内使用 props接收:

vue使用v-model进行跨组件绑定的基本实现方法

Ⅲ:在子组件 页面 内同样使用v-model,并在data内赋值为空 图片:

vue使用v-model进行跨组件绑定的基本实现方法

Ⅳ:在子组件内使用watch用来监听其变化

vue使用v-model进行跨组件绑定的基本实现方法

分解图上代码:

value函数把传来的父组件赋值给子组件,this.value也就是props里的value

value() {
      this.SonStaffPhoto = this.value
      console.log(this.SonStaffPhoto)
    }

这里是v-model绑定的子组件函数,用来把自己传递给父组件

SonStaffPhoto() {
      this.$emit('input', this.SonStaffPhoto)
    },

到这里你就可以把想传递给父组件的内容赋值给 this.SonStaffPhoto了(我赋值给了用来保存图片地址的变量)

Ⅴ:也可以在父组件里监听其变化:

vue使用v-model进行跨组件绑定的基本实现方法

父组件里的this.staffPhoto,同样可以把想绑定的内容赋值给它(我赋值给了最新的图片变量,这样就过实现了子组件图片更新,父组件也同步更新的效果)

总结

到此这篇关于vue使用v-model进行跨组件绑定的基本实现方法的文章就介绍到这了,更多相关vue用v-model跨组件绑定内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
vue实现图片裁剪后上传
Dec 16 Vue.js
vue中如何添加百度统计代码
Dec 19 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 Vue.js
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
Vue过滤器(filter)实现及应用场景详解
Jun 15 Vue.js
一篇文章学会Vue中间件管道
Jun 20 Vue.js
vue中div禁止点击事件的实现
Apr 02 Vue.js
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
关于vue中如何监听数组变化
vue实现简单数据双向绑定
Apr 28 #Vue.js
vue引入Excel表格插件的方法
Apr 28 #Vue.js
原生JS封装vue Tab切换效果
vue项目两种方式实现竖向表格的思路分析
vue首次渲染全过程
浅谈vue2的$refs在vue3组合式API中的替代方法
You might like
如何获得PHP相关资料
2006/10/09 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
python判断字符串是否包含子字符串的方法
2015/03/24 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
对python中的pop函数和append函数详解
2018/05/04 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
.net面试题
2016/09/17 面试题
2015年社区卫生工作总结
2015/04/21 职场文书
运动员代表致辞
2015/07/29 职场文书
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android