首页 > 其他分享 >Angular使用@Input和@Output实现父子组件互相传参(类似Vue的props和this.emit)

Angular使用@Input和@Output实现父子组件互相传参(类似Vue的props和this.emit)

时间:2022-12-22 13:02:32浏览次数:42  
标签:传参 Vue Component app component html 组件 emit out


app.component.html 

<app-in-out [in]='"传输进入"' (out)="out($event)" ></app-in-out>

app.component.ts

import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
out($event: any) {
alert($event);
}
}

in-out/in-out.component.html

<h1>来自父组件的参数:{{in}}</h1> 
<button (click)="out.emit('向父组件传参')">向父组件传参</button>

in-out/in-out.component.ts

import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';

@Component({
selector: 'app-in-out',
templateUrl: './in-out.component.html',
styleUrls: ['./in-out.component.css']
})
export class InOutComponent implements OnInit {

constructor() { }

@Input() in: any = '';//从父组件传入参数进来
@Output() out = new EventEmitter;//从子组件传出参数到父组件(采用事件的方式,类似Vue的emit)

ngOnInit(): void { }

}

实现效果

Angular使用@Input和@Output实现父子组件互相传参(类似Vue的props和this.emit)_input

标签:传参,Vue,Component,app,component,html,组件,emit,out
From: https://blog.51cto.com/u_15920212/5962665

相关文章

  • Vue隐藏导航栏中的部分路由
    以登录界面为例,当登录之后,页面上就不应仍出现“登录”的菜单栏1、在login菜单栏中使用v-show="$route.name!=='login'"  2、在route中需设置name,因为v-show是通过......
  • Vue绑定click事件
    1、在控件中新增@click="方法名"2、在methods里面新增方法   ......
  • vue-devtools的安装教程
    直接到我的GitHub上找:链接下下来之后打开google浏览器,输入地址chrome://extensions/,点击加载已解压的扩展程序   进入到Chrome文件夹下,点击确定:   我这里......
  • VUE3项目中的Router路由配置
    一、安装路由如果新建项目的时候已经有选择了Router选项就不需要再次安装了npminstallvue-router二、src目录下新增router文件夹,并在文件夹中新建index.ts文件impor......
  • VUE项目中的CSS重置
    项目中的css重置,可以引用一个第三方库,以及手写一个css重置样式配合使用。一、首先安装normalize.cssnpminstall--savenormalize.css然后在main.ts中引入import'n......
  • Vue路由加上项目名称
    1、在路由的base中加上项目名称  2、url重写应为 ......
  • vuex的使用
    1,vuex是什么:vuex是一个专门为vue开发的状态管理工具,它采用集中式存储管理应用的所有组件的状态,其核心是state。2,vuex中有什么:1)state:存放状态数据的地方,其中数据是响应式......
  • Vue怎么改变table的colum的样式
    在table中设定:cell-class-name="cellClassName"template:<vxe-tableborderclass="mytable-stylem-t-2":cell-class-name=......
  • vue中如何使用prismjs
    安装yarnaddprismjs使用<template>...</template><scriptsetuplang="ts">importPrismfrom'prismjs';import'prismjs/themes/prism.css';Prism.highli......
  • vue组件间值传递
    夫传子父组件代码  子组件代码  效果展示<template><h1>{{msg}}</h1></template><script>exportdefault{name:'HelloWorld',props:{......