当前位置: 首页 > news >正文

大型网站制作都有哪些河南关键词排名顾问

大型网站制作都有哪些,河南关键词排名顾问,做问卷兼职有哪些网站,用node和vue做的网站React之组件间通信 组件通信: 简单讲就是组件之间的传值,包括state、函数等 1、父子组件通信 父组件给子组件传值 核心:1、自定义属性;2、props 父组件中: 自定义属性传值 import Header from /components/Headerconst Home ()…

React之组件间通信

组件通信: 简单讲就是组件之间的传值,包括state、函数等

1、父子组件通信

父组件给子组件传值

核心:1、自定义属性;2、props

  • 父组件中: 自定义属性传值
import Header from '@/components/Header'const Home = () => {const test = '父组件的值'return (<><div>测试</div>{/* 在子组件的调用标签上,添加自定义属性,属性值就是传递给子组件的数据 */}<Header test={test} /></>)
}
export default Home
  • 子组件中:props接收
const Header = (props: { test: string }) => {// 子组件中props封装着 自定义属性对象console.log(props)return (<><div>header</div></>)
}
export default Header

2、子父组件通信

子组件给父组件传值
核心:1、父组件传递子组件自定义方法;2、子组件调用父组件的自定义方法,并传自己子组件的数据

  • 在父组件中: 传递函数
import Header from '@/components/Header'const Home = () => {const test = (str: string) => {console.log(str)}return (<><div>测试</div>{/* 向子组件传递自定义函数 */}<Header test={test} /></>)
}
export default Home
  • 在子组件中: 接收父组件的函数,通过向父组件函数传参的方法方式,将数据传递给父组件
interface IProps {test: ReturnType<typeof Function> // test: Function
}
const Header = (props: IProps) => {// 子组件中props封装着 自定义属性对象const str = '子组件的值'props.test(str)return (<><div>header</div></>)
}export default Header

3、非父子组件传值

兄弟组件或者其他非父子组件的传值。在Vue中使用的是自定义事件 definEmits()。但是React没有内置的自定义事件方法。需要借助第三方自定义事件,例如eventseventemitter3eventemitter2

  • 安装第三方包
$ yarn add events

ts 还需要安装

$ yarn add @types/events -D
  • 封装自定义事件工具
// EventEmitter :它的实例可以通过require('events')来创建。
import EventEmitter from 'events'const emits = new EventEmitter()
export default emits
  • 在传值的组件中,注册自定义事件
import emits from '@/utils/events'
import { useEffect } from 'react'
const Header = () => {// 注册自定义事件test// 注册自定义事件需要在useEffect中完成useEffect(() => {// 参数1: 自定义事件名// 参数2: 通信传递的值emits.emit('test', 'header 组件的值')}, [])return (<><div>header</div></>)
}export default Header
  • 在接收值的组件中,监听自定义事件
import emits from '@/utils/events'
const Footer = () => {emits.on('test', (str: string) => {console.log(str)})return (<><div>footer</div></>)
}
export default Footer

4、其他非父子组件之间的通信补充

4.1、全局状态管理:Redux全家桶

redux数据持久化
redux异步操作

4.2、React内置的上下文对象:context

  • 通过createContext ,创建要传递的数据对象
import { createContext } from 'react'const appContext = createContext({// 传递的数据test: 'context传的值---测试'
})
export default appContext
  • 在使用创建的context对象的组件中, 通过useContexthook获取上下文对象数据
import appContext from '@/utils/appContext'
import { useContext } from 'react'const Header = () => {// useContext接收自定义的上下文对象参数const context = useContext(appContext)return (<><div>header</div><p>{context.test}</p></>)
}
export default Header
http://www.ho-use.cn/article/2514.html

相关文章:

  • 深圳品牌网站推广公司哪家好网站分为哪几种类型
  • 西宁做网站ci君博却上网站优化的关键词
  • html5 手机网站 图标廊坊seo管理
  • 查询企业的app哪个好优化公司治理结构
  • 哈尔滨建站模板源码佛山seo联系方式
  • access做网站给你一个网站怎么优化
  • 做私活有哪些网站做网站的好处
  • 怎么做自已的网站seo网站整站优化
  • 网站功能设计的内容竞价sem托管
  • 深度网络北京网站优化技术
  • 做解密类网站可行网络营销的定义
  • 企业网站源码 php游戏推广员判几年
  • 搜搜网站提交入口抖音关键词排名查询工具
  • 小学生编程软件如何做好网站站内优化
  • wordpress图片上传seo监控系统
  • wordpress多个页面主题做百度seo
  • 地方网站怎么做挣钱东莞网络推广营销
  • 杭州手机网站制作电脑公司百度一下app下载安装
  • html 购物网站西安网站开发
  • 网站前端做报名框代码江门关键词排名优化
  • 晨光科技 网站建设郑州百度网站优化排名
  • 南京有关制作网站的公司seo的工具有哪些
  • 自己怎么手机做网站手机自己怎么建电影网站
  • 怎么看公司网站是哪里做的合肥关键词快速排名
  • 做简图的网站手机如何制作一个网页链接
  • 产品商城网站建设宁波网站建设与维护
  • canvas设计网站win10优化大师官网
  • 石家庄做网站制作公司100个关键词
  • 网站上面做测试题微信管理软件
  • 简单html网站页面优化算法