Vue使用.sync 实现父子组件的双向绑定数据问题


Posted in Javascript onApril 04, 2019

1.前言

最近在vue 项目中有一个需求, 就是我需要根据不同的类型在页面中放不同的组件, 组件需要跟当前页面的数据进行双向绑定,如果都写在同一个页面 代码会显得比较多,毕竟我当前页面已经7-800行代码了 所以我需要把一些元素定义成组件 ,封装起来,所以就会遇到 数据的传值绑定问题

2.父组件

首先我们来看看官方文档 [ https://cn.vuejs.org/v2/guide/components.html#sync-修饰符 ]

.sync 修饰符所提供的功能。当一个子组件改变了一个 prop 的值时,这个变化也会同步到父组件中所绑定

就是说我们可以直接在我们需要传的prop后面加上 .sync

比如 我下面需要绑定   p_model,然后我在他后面加上.sync

<certificate-input
    :p_model.sync='pname'>
 </certificate-input>

他会扩展成:

<certificate-input :p_model="pname" @update:p_model="val => pname= val"></certificate-input>

父组件全部代码:

<template>
 <div>
 <certificate-input
    :p_model.sync='pname'
    :xi_model.sync="xiname">
 </certificate-input>
</div>
</template>
import CertificateInput from '../common/CertificateInput.vue'
export default {
 name: 'fathor',
 components: {
  CertificateInput 
 },
 data() {
  return {
   pname:"",
   xiname:""
 }  
}

子组件

上面说了一大推父组件下面我们来看看子组件怎么写 ?

因为我项目中使用vux 代码就直接复制过来改了一下

<template>
 <div>
  <x-input
   title="姓名" 
   v-model="name" 
   ></x-input>
  <x-input title="身份证号" 
    v-model="idCard" 
    placeholder="请输入身份证号"
    required>
  </x-input>
 </div>
</template>
<script type="text/javascript">
 import { XInput} from 'vux'
 export default{
  name:'certificateInput',
  props:["p_model","xi_model"],
  components:{
   XInput
  },
  data(){
   return{
    name:this.p_model,
    idCard:this.xi_model
   }
  },
  watch:{
  
   p_model(val) { 
    this.address = val;
   },
   name(val){
  //设置监听,如果改变就更新 p_model
    this.$emit('update:p_model', val)
   },
   xi_model(val){
    this.certificate = val
   },
   idCard(val){
     this.$emit('update:xi_model', val)
   }
  }
 }
</script>

由上面可以看出   子组件主要代码 就是监听他的改变 然后触发父组件监听的事件

name(val){
  //设置监听,如果改变就更新 p_model
    this.$emit('update:p_model', val)
}

好了 上面就是我的方法

感觉写的好low

以后多多改善

总结

以上所述是小编给大家介绍的Vue使用.sync 实现父子组件的双向绑定数据问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js中几种去掉字串左右空格的方法
Dec 25 Javascript
初探jquery——表单应用范例
Feb 20 Javascript
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
JQuery jsonp 使用示例代码
Aug 12 Javascript
Javascript中的异步编程规范Promises/A详细介绍
Jun 06 Javascript
JavaScript实现Java中StringBuffer的方法
Feb 09 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 jQuery
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
Django+vue跨域问题解决的详细步骤
Jan 20 Javascript
记一次vue跨域的解决
Oct 21 Javascript
vue-drawer-layout实现手势滑出菜单栏
Nov 19 Vue.js
小程序getLocation需要在app.json中声明permission字段
Apr 04 #Javascript
Vue组件内部实现一个双向数据绑定的实例代码
Apr 04 #Javascript
详解JavaScript的变量
Apr 04 #Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
Apr 04 #Javascript
js 计算图片内点个数的示例代码
Apr 04 #Javascript
在node中使用jwt签发与验证token的方法
Apr 03 #Javascript
全面了解JavaScript的作用域链
Apr 03 #Javascript
You might like
西德产收音机
2021/03/01 无线电
建立文件交换功能的脚本(二)
2006/10/09 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
JS中操作JSON总结
2020/12/06 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
基于canvas实现的钟摆效果完整实例
2016/01/26 Javascript
jQuery的框架介绍
2016/05/11 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
Javascript的this详解
2019/03/23 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
Python遍历目录的4种方法实例介绍
2015/04/13 Python
理解Python中的With语句
2016/03/18 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
学Python 3的理由和必要性
2019/11/19 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
酒店中秋节活动方案
2014/01/31 职场文书
小学生操行评语大全
2014/04/22 职场文书
意向协议书范本
2014/04/23 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
Python极值整数的边界探讨分析
2021/09/15 Python