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实现的一个简单进度条效果实例
May 12 Javascript
一个实用的图片切换支持点击切换和自动轮播
Sep 09 Javascript
学习JavaScript设计模式之状态模式
Jan 08 Javascript
浅谈javascript中new操作符的原理
Jun 07 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
利用node.js搭建简单web服务器的方法教程
Feb 20 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
VUE简单的定时器实时刷新的实现方法
Jan 20 Javascript
微信小程序实现文件、图片上传功能
Aug 18 Javascript
vue 实现tab切换保持数据状态
Jul 21 Javascript
vue 中的动态传参和query传参操作
Nov 09 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
在PHP中使用模板的方法
2008/05/24 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
js实现扫雷源代码
2020/11/27 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
北大研究生linux应用求职信
2013/10/29 职场文书
企业宗旨标语
2014/06/10 职场文书
生日寿星公答谢词
2015/09/29 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
Python Matplotlib绘制动画的代码详解
2022/05/30 Python
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python