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文件上传插件Uploadify使用指南
Jun 05 Javascript
js 数组去重的四种实用方法
Sep 09 Javascript
JavaScript实现自动消除按钮功能的方法
Aug 05 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
Mar 08 Javascript
js学习总结之dom2级事件基础知识详解
Jul 27 Javascript
细说webpack源码之compile流程-入口函数run
Dec 26 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
浅谈webpack 自动刷新与解析
Apr 09 Javascript
axios简单实现小程序延时loading指示
Jul 30 Javascript
Vue中img的src是动态渲染时不显示的解决
Nov 14 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
ElementUI实现el-form表单重置功能按钮
Jul 21 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
解析MySql与Java的时间类型
2013/06/22 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
一页面多XMLHttpRequest对象
2007/01/22 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
ES6中数组array新增方法实例总结
2017/11/07 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
详解Python的Django框架中的通用视图
2015/05/04 Python
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python读取文本中的坐标方法
2018/10/14 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
pycharm创建一个python包方法图解
2019/04/10 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
举例讲解Python装饰器
2020/12/24 Python
上海方立数码笔试题
2013/10/18 面试题
区长工作作风个人整改措施
2014/10/01 职场文书
离婚被告代理词
2015/05/23 职场文书
关于远足的感想
2015/08/10 职场文书