vue组件间的参数传递实例详解


Posted in Javascript onApril 26, 2019

场景分析

在前端开发中,我们常常会运用到“组件库”。在main入口中引入组件库,就可以很轻松的在页面中引入,并做一些基本的配置,如样式,颜色等。只需要在引入的组件中写入特定的属性,就能够定义。

举例说明

例如:element-ui组件库中使用switch开关,有个属性active-color是设置“打开时”的背景色。change事件是触发状态的事件。

<el-switch
 v-model="value"
 :active-color="activecolor"
 @change="touchSwitch">
</el-switch>

<script>
 export default {
  data() {
   return {
    value: true,
    activecolor: '#13ce66'
   }
  },
  methods: {
   touchSwitch () {
    // 这里入方法
   }
  }
 };
</script>

分析代码

我们分析上面的代码

首先我们可以看到active-color是将特定的数据传给组件,也就是父传子组件。

其次是@change虽然监听的是改变事件,但是语法糖依然是$emit,什么emit我们在以后的文章中会讲到,就是“抛出事件”。

这就分为组件的最基本功能:

•数据进
•事件出

那组件的使用我们知道了,通过active-color传入参数,通过@来接收事件。
 所以,我们来探究一下组件的内部结构是什么样的?

我写了一个小模型,是一个显示标题的小按钮,通过div包裹。

<!-- type-box.vue -->
<template>
 <div class="box" @click="ai_click(title)">{{title}}</div>
</template>

<script>
export default {
 name: 'type-box',
 props: {
  title: {
   type: String,
   default: () => ''
  }
 },
 methods: {
  ai_click (title) {
   this.$emit('ai_click', title)
  }
 }
}
</script>

<style scoped>
 .box{
  width: 250px;
  height: 100px;
  margin: 10px;
  border-radius: 10px;
  background-color: #3a8ee6;
  color: white;
  font-size: 25px;
  line-height: 100px;
  text-align: center;
  cursor: pointer;
 }
</style>

使用方法:

<!-- 父组件使用 -->
<template>
 <div>
  <type-box title="演示盒子" @ai_click=“touch”></type-box>
 </div>
</template>
<script>
import typeBox from './type-box'
export default {
 components: {
  typeBox
 },
 methods: {
  touch (data) {
   console.log(data)
  }
 }
}
</script>

分析组件

接收

通过props接收父组件传递过来的数据,通过工厂函数获取一个默认值。

传递

通过this.$emit('ai_click', title)告诉父组件,我要传递一个事件,名字叫“ai_click”,请通过@ai_click接收一下,并且我将title的值返回父组件。

总结

所以今天分析vue组件的3大核心概念的其中两个——属性和事件。

 这篇文章只分析到应用场景,也是最简单的组件。希望后续能够深入了解vue的组件概念:属性、事件和插槽。

以上所述是小编给大家介绍的vue组件间的参数传递实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
Jquery操作radio的简单实例
Jan 06 Javascript
node.js中实现同步操作的3种实现方法
Dec 05 Javascript
浅谈JS日期(Date)处理函数
Dec 07 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
Bootstrap每天必学之警告框插件
Apr 26 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
js实现5秒倒计时重新发送短信功能
Feb 05 Javascript
node学习记录之搭建web服务器教程
Feb 16 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
May 17 Javascript
layer页面跳转,获取html子节点元素的值方法
Sep 27 Javascript
javascript+css实现进度条效果
Mar 25 Javascript
用JS写一个发布订阅模式
Nov 07 Javascript
详解VUE前端按钮权限控制
Apr 26 #Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 #Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
Apr 26 #Javascript
微信小程序实现的绘制table表格功能示例
Apr 26 #Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 #Javascript
微信小程序如何修改本地缓存key中单个数据的详解
Apr 26 #Javascript
js验证身份证号码记录的方法
Apr 26 #Javascript
You might like
附件名前加网站名
2008/03/23 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
node内置调试方法总结
2018/02/22 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Python常用内置函数总结
2015/02/08 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python如何通过protobuf实现rpc
2016/03/06 Python
Python之父谈Python的未来形式
2016/07/01 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
Python 发送邮件方法总结
2020/08/10 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
美国存储和组织商店:The Container Store
2017/08/16 全球购物
新党员入党决心书
2015/09/22 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python
关于使用Redisson订阅数问题
2022/01/18 Redis