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 相关文章推荐
COM中获取JavaScript数组大小的代码
Nov 22 Javascript
jQuery浏览器CSS3特写兼容实例
Jan 19 Javascript
jquery实现搜索框常见效果的方法
Jan 22 Javascript
javascript中获取元素标签中间的内容的实现方法
Oct 08 Javascript
使用ionic切换页面卡顿的解决方法
Dec 16 Javascript
详解angularJs中关于ng-class的三种使用方式说明
Jun 02 Javascript
基于JavaScript canvas绘制贝塞尔曲线
Dec 25 Javascript
JS实现判断移动端PC端功能
Feb 21 Javascript
Vue中key的作用示例代码详解
Jun 10 Javascript
详解JS预解析原理
Jun 16 Javascript
微信小程序实现多选框功能的实例代码
Jun 24 Javascript
【js设计模式】SOLID五大设计原则
Mar 24 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
3.从实例开始
2006/10/09 PHP
PHP 透明水印生成代码
2012/08/27 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
Javascript 解疑
2009/11/11 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
Postman无法正常返回结果问题解决
2020/08/28 Javascript
python3.5安装python3-tk详解
2019/04/26 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
墨西哥网上超市:Superama
2018/07/10 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
三八妇女节活动主持词
2014/03/17 职场文书
报告会主持词
2014/04/02 职场文书
赔偿协议书
2015/01/27 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
网吧员工管理制度
2015/08/05 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL
php实现自动生成验证码的实例讲解
2021/11/17 PHP