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实现点击当前行变色
Dec 14 Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
Vue+Bootstrap实现简易学生管理系统
Feb 09 Vue.js
Vue基本指令实例图文讲解
Feb 25 Vue.js
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
vue ref如何获取子组件属性值
Mar 31 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 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导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
php检测文本的编码
2015/07/26 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
json跟xml的对比分析
2008/06/10 Javascript
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
JavaScript 大数据相加的问题
2011/08/03 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
js读写json文件实例代码
2014/10/21 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
Python 爬虫图片简单实现
2017/06/01 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
django如何通过类视图使用装饰器
2019/07/24 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
联想中国官方商城:Lenovo China
2017/10/18 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
会计电算化专业应届大学生求职信
2013/10/22 职场文书
任命书模板
2014/06/04 职场文书
写给老师的保证书
2015/05/09 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
Github 使用python对copilot做些简单使用测试
2022/04/14 Python