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 相关文章推荐
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
Jan 09 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
详解JavaScript中的every()方法
Jun 08 Javascript
JS实现点击上移下移LI行数据的方法
Aug 05 Javascript
jQuery防止重复绑定事件的解决方法
May 14 Javascript
JavaScript中this的四个绑定规则总结
Sep 26 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
Sep 27 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
Jun 25 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
Oct 25 Javascript
webpack介绍使用配置教程详解webpack介绍和使用
Jun 25 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/07/24 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
php遍历目录方法小结
2015/03/10 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
2015/11/30 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
微信小程序之左右布局的实现代码
2019/12/13 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
python通过shutil实现快速文件复制的方法
2015/03/14 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
送货司机岗位职责
2013/12/11 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
走群众路线学习笔记
2014/11/06 职场文书
男生贾里读书笔记
2015/06/30 职场文书
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers