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 相关文章推荐
JavaScript网页制作特殊效果用随机数
May 22 Javascript
javascript函数以及基础写法100多条实用整理
Jan 13 Javascript
javascript重复绑定事件造成的后果说明
Mar 02 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
Mar 19 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
Mar 02 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 Javascript
javascript与jquery动态创建html元素示例
Jul 25 Javascript
AngularJS入门教程之Scope(作用域)
Jul 27 Javascript
移动端js触摸事件详解
Sep 18 Javascript
浅析JS中回调函数及用法
Jul 25 Javascript
vue-froala-wysiwyg 富文本编辑器功能
Sep 19 Javascript
微信小程序自定义弹出层效果
May 26 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
JavaScript Split()方法
2015/12/18 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
python中bisect模块用法实例
2014/09/25 Python
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
python调用百度REST API实现语音识别
2018/08/30 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
python进阶之自定义可迭代的类
2019/08/20 Python
Django 实现将图片转为Base64,然后使用json传输
2020/03/27 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
2014年宣传部工作总结
2014/11/12 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
修辞手法有哪些?
2019/08/29 职场文书
python pyhs2 的安装操作
2021/04/07 Python
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers