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中的replace方法使用介绍
Oct 28 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
May 29 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
jquery背景跟随鼠标滑动导航
Nov 20 Javascript
防止Node.js中错误导致进程阻塞的办法
Aug 11 Javascript
微信小程序 template模板详解及实例
Feb 21 Javascript
关于vue-resource报错450的解决方案
Jul 24 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
Nov 04 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
基于JavaScript实现简单抽奖功能代码实例
Oct 20 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
Feb 05 Javascript
小程序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
PHP实现合并discuz用户
2015/08/05 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
基于jquery的动态创建表格的插件
2011/04/05 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
详解Python中的动态属性和特性
2018/04/07 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
班主任工作年限证明
2014/01/12 职场文书
商务邀请函
2015/01/30 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
在校学生证明格式
2015/06/24 职场文书
高中班主任心得体会
2016/01/07 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书