Vue父子组建的简单通信之控制开关Switch的实现


Posted in Javascript onJune 04, 2018

Vue在目前是很好的框架,第一次使用Vue开发项目,刚开始的时候在一个控制开关的组件都花费了很久的时间,问题解决了,把自己的一些小问题给记录下来,方便以后看及帮助像我这样的初级萌新解决遇到的相同问题。

问题: 父组件传入值到子组件,子组件修改之后怎样传回到父组件 

父组件:内部首先要有三步

1、父组件中引用子组件

2、父组件中注册子组件

3、在子组件上绑定传值

父组件

<template> 
<div class="hello">  
<ul>   
<li @click="changeFlag">点击开关----------------父组件默认为{{flag}}</li>  
</ul>  
<v-child :childFlag='flag' @parentChangeFlag='parentChangeFlag'></v-child> 
//第三部 
</div>
</template>
<script>
import child from '子组件地址' //第一步
data(){
  return{
    flag:false  }},
components:{
   'v-child': child  //第二步
}
</script>

在第三步骤里,绑定了一个childFlag传给子组件,其值为flag

子组件

< template > 
<div class = "hello" >
 <ul > 
<li@click = "parentChangeFlag" > 显示 {
  {
    childFlag
  }
}---子元素: {
  {
    flag2
  }
} 
< /li>   
 <li @click="parentChangeFlag" v-show="childFlag"><img src="./images / ios_switch_off.png " alt="">
</li>   
<li @click="parentChangeFlag " v-show=" ! childFlag "><img src=". / images / ios_switch_on.png " alt=""></li>  
</ul> 
</div>
</template>
< script > export
default {
    props:
    {
      childFlag:
      {
        type:
        Boolean,
      default:
        true
      }
    },
    data() {
      return {
        flag2: this.childFlag
      };
    },
    watch: {
      childFlag(flag2) {
        this.flag2 = this.childFla
      }
    },methods: { // 子组件传值给父组件  parentChangeFlag(){   this.flag2 = !this.flag2   this.$emit('parentChangeFlag',this.flag2)  } }};</script>

在父组件里,传了一个childFlag下来,我们要在子组件里去接收,方式用props,具体的可以看官方文档, 创建接收之后呢,我们需要把传进来的值绑定给我们子组件的data值即(flag2),完成这一步的话,我们就完成了父组件往子组件进行传值。

上面只是完成了父传子,下面讲述怎么子传父

子组件所需做的事情:

首先,我们需要在子组件里进行改变其状态值,这样我们就创建了一个parentChangeFlag点击事件,进而改变当前的子元素的(flag2)值;

其次,改变完当前的值,我们就要把子元素的状态值给传回父组件,这样就用到了$emit方法,this.$emit('function',Value);   function指父组件里监听子元素点击事件的函数;Value就代表你需要传回父元素的值。

父组件所需做的事情:

在父组件中,创建一个监听子元素改变data值的函数(即@parentChangeFlag='parentChangeFlag')

methods: {
  changeFlag() {
    //父组建点击改变元素传值给子组件  
    this.flag = !this.flag
  },
  parentChangeFlag: function(flag2) {
    //父组件监听子组件点击的函数 flag2为子组件传进来的值,把值赋给当前元素,就实现了父子之间的通信   
    console.log(flag2) this.flag = flag2
  }
}

当你完成父子组件各自所需要的工作时候,就恭喜你了,已经完成了Switch的效果,效果图如下

Vue父子组建的简单通信之控制开关Switch的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 代码压缩工具小结
Feb 27 Javascript
js 操作select和option常用代码整理
Dec 13 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
Jan 02 Javascript
Javascript写入txt和读取txt文件示例
Feb 12 Javascript
获取当前点击按钮的id用this.id实现
Mar 17 Javascript
一个简单的全屏图片上下打开显示网页效果示例
Jul 08 Javascript
jQuery Validate插件实现表单验证
Aug 19 Javascript
require.js 加载过程与使用方法介绍
Oct 30 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
Jun 03 Javascript
Node.js 在本地生成日志文件的方法
Feb 07 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
Jul 28 Javascript
threejs太阳光与阴影效果实例代码
Apr 05 Javascript
深入浅析JS中的严格模式
Jun 04 #Javascript
详解如何在你的Vue项目配置vux
Jun 04 #Javascript
详解vue-loader在项目中是如何配置的
Jun 04 #Javascript
vue.js打包之后可能会遇到的坑!
Jun 03 #Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
Jun 02 #Javascript
vue之将echart封装为组件
Jun 02 #Javascript
React学习笔记之高阶组件应用
Jun 02 #Javascript
You might like
PHP文件上传原理简单分析
2011/05/29 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
建筑专业自荐信
2013/10/18 职场文书
信息工程学院毕业生推荐信
2013/11/05 职场文书
文明班级建设方案
2014/05/15 职场文书
新闻发布会策划方案
2014/06/12 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
党员检讨书范文
2014/12/27 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
开学随笔
2015/08/15 职场文书
九年级数学教学反思
2016/02/17 职场文书
element多个表单校验的实现
2021/05/27 Javascript
Python标准库pathlib操作目录和文件
2021/11/20 Python