1.组件定义

1.定义组件并引用

2.父组件向子组件传值

3.子组件向父组件传值

# 组件间传值:vuex (https://www.cnblogs.com/xiaonq/p/9697921.html

1.1什么是组件

  • Html中有组件,是一段可以被复用的结构代码
  • Css中有组件,是一段可以被复用的样式
  • Js中有组件,是一段可以被复用的功能
  • Vue中也有组件,指的就是一个模块,是一个独立的,完整的(包含html,css,js等),可以直接 拿来用

1.2组件特性

  • 组件的实例化对象,跟vue实例化对象一样,因此,我们也可以将vue实例化对象看成组件
  • 组件间是独立的,因此数据要独立存储,方法要独立定义, 彼此间不能共享 。

2.父组件向子组件传值

2.1 components/Child.vue定义子组件

<template>

 <div style="color: red">

<h1>子组件内容</h1>

<p>{{data}}</p>

</div>

</template>
<script>  export default {

// 子组件要使用父组件的数据,只需要一步,在 props中接收父组件的属性

props: ['data'],  // 接收父组件给子组件定义的属性

}

</scrip>

2.2 components/Father.vue定义父组件

<template>

<div>

<h1>父组件内容</h1>

父组件显示:{{msg}}

<!--3.第三步:把父组件的某一个属性传递给子组件-->

<Child

:data='msg'

></Child>

</div>

</template>
<script>

// @指定的是src路径  import Child from '@/components/Child'   // 1.第一步:在父组件中导入子组件

export default {

// 2.第二步:父组件中注册子组件

components: {

Child   },

data() {

return {

msg: '父组件的信息'

}

},    methods: {
  } } </script>

2.3 router/index.js中注册路由

import Father from '@/components/Father'  // @修饰符指的是 src目录
export default new Router({

routes: [

{ path: '/component', name: 'Father', component: Father },]

})

2.4测试

  • 子组件中可以通过定义props属性来接收父组件的数据

3.子组件向父组件传值

3.1 components/Child.vue子组件通过触发方法, 向父组件传值

<template>

<div>{{data}}

<button @click="emitfather">调用父组件方法</button>

</div>

</template>

<script>  export default {    props: ['data'], // 接收父组件给子组件定义的属性

methods: {

emitfather() {        console.log('调用emitfather方法')

//1.子组件调用父组件方法,并传值

// $emit 触发当前实例上的事件,也可以简单的理解为触发父组件上的事件(向上冒泡)

this.$emit('changeMsg', '子组件信息修改后的data信息,传递给父组件')

}

}

} </script>

3.2 components/Father.vue给子组件添加事件及事件处理方法

<template>

<div>

父组件显示:{{msg}}    <!--4.把父组件的一个方法传递给子组件-->

<Child

:data='msg'

@changeMsg='change'

></Child>

</div>

</template>

<script>

//1.导入

import Child from '@/components/Child'

 export default {

//2.注册

components: {

Child,

},

data() {

return {

msg: '父组件的信息'

}

},

methods: {

//3.在父组件中定义一个change方法,可以在子组件中触发并传值给父组件

change(data) {

// data接收是子组件中传递的数据

// debugger

alert('调用了父组件的方法, 接收到信息:'+data)

this.msg = data  // 更新父组件的内容

}

}

}

</script>

3.3测试

点击"调用父组件方法"就会调用

day3(Vue组件)的更多相关文章

  1. vue组件

    分享出来让思路更成熟. 首先组件是 Vue.js 最强大的功能之一. 可以减少很多的工作量,提高工作效率. 编写一个可复用性的组件,虽然官网上也有.... 编写可复用性的vue组件 具备一下的几个要求 ...

  2. vue组件的配置属性

    vue组件的声明语法: Vue.component('component-name',{ template:'<p>段落{{prop1}} {{prop2}}</p>', da ...

  3. vue组件,撸第一个

    实现此例您可以学到: vue-cli的基本应用 父组件如何向子组件传递值 单文件组件如何引入scss v-on和v-for的基础应用 源码下载 一.搭建vue开发环境 更换镜像到cnpmnpm ins ...

  4. vue组件最佳实践

    看了老外的一篇关于组件开发的建议(强烈建议阅读英文原版),感觉不错翻译一下加深理解. 这篇文章制定一个统一的规则来开发你的vue程序,以至于达到一下目的. 1.让开发者和开发团队更容易发现一些事情. ...

  5. JS组件系列——又一款MVVM组件:Vue(二:构建自己的Vue组件)

    前言:转眼距离上篇 JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查) 已有好几个月了,今天打算将它捡起来,发现好久不用,Vue相关技术点都生疏不少.经过这几个月的时间,Vue ...

  6. vue组件大集合 component

    vue组件分为全局组件.局部组件和父子组件,其中局部组件只能在el定义的范围内使用, 全局组件可以在随意地方使用,父子组件之间的传值问题等. Vue.extend 创建一个组件构造器 template ...

  7. 【Vue】详解Vue组件系统

    Vue渲染的两大基础方式 new 一个Vue的实例 这个我们一般会使用在挂载根节点这一初始化操作上: new Vue({ el: '#app' }) 注册组件并使用—— 全局注册 通过Vue.comp ...

  8. 关于vue组件的一个小结

    用vue进行开发到目前为止也有将近一年的时间了,在项目技术选型的时候隔壁组选 react的时候我们坚持使用vue作为前端的开发框架.虽然两者思想上的差异不大,但是vue的语法在代码的可读性以及后期的维 ...

  9. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

随机推荐

  1. CSS换行和省略号

    换行 原地址:https://www.cnblogs.com/meowcool/p/10130103.html //强制不换行 div{ white-space:nowrap; } //自动换行 di ...

  2. SQL存储过程返回值

    1 SQL存储过程返回值有3种 1.1 直接return返回(例如 return 1): 1.2 通过参数output返回(例如字符串类型): 1.3 直接返回程序集(Dataset程序集). 2 用 ...

  3. 容器场景要选择什么 Linux 版本?

    容器的底层实现深度依赖于内核的众多特性,如 overlay 文件系统,namespace, cgroup 等,因此内核的功能和稳定性,在很大程度上,决定了整个容器PaaS平台的功能和稳定性.从 TKE ...

  4. Numpy_02

    # 十,使用数组进行文件输入和输出 # Numpy 可以将数据以[文本]或[二进制]的形式存入硬盘,或从硬盘载入. # 由于大部分用户更倾向于使用pandas等其他工具来载入文本或表格型数据,因此,这 ...

  5. 经典c程序100例==21--30

    [程序21] 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下 的一半零一个.到第10天早 ...

  6. 应对告警风暴,Cloud Alert 实现告警风暴智能降噪

    前言 睿象云前段时间发表了一篇< Zabbix 实现电话.邮件.微信告警通知的实践分享>的技术文章.它帮助我们非常轻松地支持了各种告警通知方式,但是存在一个严重的问题,我们经常接到各种相类 ...

  7. 重看 mb volatile atomic

    在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的.为了弥补这一缺点,x86提供了附加的lock前缀,使带lock前缀的读修改写指令也能原子性执 ...

  8. linux中几个文本文件查看命令

    Linux中,常用的文本文件查看命令介绍如下: 1. cat 用法: cat [options] filename options: -A: 显示全部. -E: 在每一行的后面加上"$&qu ...

  9. parted命令采用gpt分区过程

    Gpt无分区限制,故只有主分区,无扩展分区和逻辑分区.分区直接按容量算,不按柱面算. 查看分区:parted -l 将分区表类型转换为gpt.: 主要命令mklabel gpt 对sdc盘分区: [r ...

  10. 利用虚拟化环境虚拟nvme盘

    前情介绍 SPDK SPDK的全称为Storage Performance Development Kit ,是Intel发起的一个开源驱动项目,这个是一个开发套件,可以让应用程序在用户态去访问存储资 ...