React의 핵심 중 하나는 컴포넌트입니다. 이 글에서는 주로 React 튜토리얼에서 Portal 재사용 가능 컴포넌트를 캡슐화하는 방법을 소개하고 있으며, 필요한 친구들은 아래에서 참고할 수 있습니다. 함께 배워요.
포털 소개
따라서 다음 작업을 수행하는 범용 구성 요소가 필요합니다.
구성 요소에서 선언적으로 작성할 수 있습니다.
선언된 위치에서는 실제로 렌더링되지 않습니다.
-
전환 애니메이션 지원
그러면 모달, 툴팁, 알림 등의 구성 요소가 이 구성 요소를 기반으로 할 수 있습니다. 우리는 이 구성요소를 포털이라고 부릅니다.
React16+를 사용하는 경우 최소한 Portal에 대해 알고 있거나 사용에 능숙해야 합니다.
Portal은 루트 요소 외부에 DOM을 생성할 수 있습니다.
1. 일반적으로 웹사이트에는 루트가 하나만 있습니다
<p></p>
2. Portal을 사용하면 다음과 같이 될 수 있습니다.
<p></p>
Portal 상위 수준 구성 요소 캡슐화
Portal의 데모는 공식 웹사이트에서 볼 수 있습니다. 그리고 우리는 그것을 재사용 가능한 구성 요소로 캡슐화하는 것을 원합니다.
Goal
본문 아래에 HTML을 수동으로 추가할 필요 없이 구성 요소를 통해 직접 만드세요.
<createportal> 此处插入p或者react组件 </createportal>
구현 계획
1. 포털 구성 요소를 반환하는 createPortal 함수를 만듭니다.
function createPortal() { } export default createPortal()
2. 렌더링 기능을 구현하고 createPortal을 사용하여 포털을 만듭니다.
import React from 'react' import ReactDOM from 'react-dom' import PropTypes from 'prop-types' function createPortal() { class Portal extends React.Component{ } return Portal } export default createPortal()
4. body에 dom 추가
render() { return ReactDOM.createPortal( this.props.children, this.el ) }
5. componentWillUnmount 함수 구현, DOM 구조 지우기
componentDidMount() { document.body.appendChild(this.el); }
6. id, className, style
componentWillUnmount() { document.body.removeChild(this.el) }
7을 포함한 props 구현.
constructor(props) { super(props) this.el = document.createElement('p') if (!!props) { this.el.id = props.id || false if (props.className) this.el.className = props.className if (props.style) { Object.keys(props.style).map((v) => { this.el.style[v] = props.style[v] }) } document.body.appendChild(this.el) } }요약 createPortal과 Provide의 구현 아이디어는 목표를 달성하기 위해 함수형 프로그래밍 아이디어를 사용한다는 점에서 유사합니다. 이 기능이 유용하다고 생각되면 계속 사용해 보세요. 관련 권장사항:
Oracle Portal 및 포털 개발 개요
Liferay 연구 노트(1) Liferay Portal5.2.3 환경의 예비 구축
Oracle Fusion Middleware Ⅱ: Weblogic, UCM, WebCenter Portal
위 내용은 React는 재사용 가능한 포털 구성 요소의 예제 코드를 캡슐화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

在react中,canvas用于绘制各种图表、动画等;可以利用“react-konva”插件使用canvas,该插件是一个canvas第三方库,用于使用React操作canvas绘制复杂的画布图形,并提供了元素的事件机制和拖放操作的支持。

在react中,antd是基于Ant Design的React UI组件库,主要用于研发企业级中后台产品;dva是一个基于redux和“redux-saga”的数据流方案,内置了“react-router”和fetch,可理解为应用框架。

React不是双向数据流,而是单向数据流。单向数据流是指数据在某个节点被改动后,只会影响一个方向上的其他节点;React中的表现就是数据主要通过props从父节点传递到子节点,若父级的某个props改变了,React会重渲染所有子节点。

因为在react中需要利用到webpack,而webpack依赖nodejs;webpack是一个模块打包机,在执行打包压缩的时候是依赖nodejs的,没有nodejs就不能使用webpack,所以react需要使用nodejs。

在react中,forceupdate()用于强制使组件跳过shouldComponentUpdate(),直接调用render(),可以触发组件的正常生命周期方法,语法为“component.forceUpdate(callback)”。

react是组件化开发;组件化是React的核心思想,可以开发出一个个独立可复用的小组件来构造应用,任何的应用都会被抽象成一颗组件树,组件化开发也就是将一个页面拆分成一个个小的功能模块,每个功能完成自己这部分独立功能。

react与vue的虚拟dom没有区别;react和vue的虚拟dom都是用js对象来模拟真实DOM,用虚拟DOM的diff来最小化更新真实DOM,可以减小不必要的性能损耗,按颗粒度分为不同的类型比较同层级dom节点,进行增、删、移的操作。

react和reactdom的区别是:ReactDom只做和浏览器或DOM相关的操作,例如“ReactDOM.findDOMNode()”操作;而react负责除浏览器和DOM以外的相关操作,ReactDom是React的一部分。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
