react學習之彈出層

2022-08-12 17:24:19 字數 4109 閱讀 5751

react的彈出層不同於以往的dom程式設計,我們知道,在dom中,彈出層事件繫結在對應的節點上即可,但是在react中,往往只能實現父子之間的傳遞控制,顯然,彈出層的層級不符合此關係。

在這裡我們需要使用react官方的portals

portals可以幫助我們將子節點插入到父節點層級之外的地方

注:官方文件使用的是class,我在這裡使用的是react hook

在react

react hook

useeffect是了react生命週期中的componentdidmountcomponentdidupdate以及componentwillunmount三個鉤子函式的組合。

return(

)}2.實現彈出層

我們按照官方文件,先生成乙個節點el作為存放我們子節點的容器,並執行reactdom.createportal

reactdom.createportal(child, container)
我們需要先將我們的el節點插入選定的dom節點,然後再將portal元素插入dom樹中,故我們先用hook在componentdidmount階段將el插入dom

(1)首先獲取我們要插入的dom節點id=model-root

const modelroot = document.getelementbyid('model-root');
(2)建立乙個存放子節點的元素el

const [el,changel] = usestate(document.createelement('div'));
(3)在componentdidmount階段將el節點插入model-root

//初始化工作

useeffect(()=>,)

(4)渲染元件,執行createportal方法

return reactdom.createportal((

), el);

(5)在componentwillunmount階段移除我們的el節點

//清理工作

useeffect(()=>

})

完整**如下:

import react, from 'react';

import './model.css';

import reactdom from "react-dom";

import excelutil from '../../utils/excelutil';

function content(props) }/>

)}function model(props),)

//清理工作

useeffect(()=>

})return reactdom.createportal((

), el);

}export default model;

這樣子子元素就出現在了我們想要的dom層級中

3.在呼叫頁中引入我們的model並定義相關觸發事件,這些與子節點向父節點的方式傳值無異

function registerinuser() 

return(

//這裡是使用的地方

匯入人員

}>

匯出**

**於:

react的彈出層不同於以往的dom程式設計,我們知道,在dom中,彈出層事件繫結在對應的節點上即可,但是在react中,往往只能實現父子之間的傳遞控制,顯然,彈出層的層級不符合此關係。

在這裡我們需要使用react官方的portals

portals可以幫助我們將子節點插入到父節點層級之外的地方

注:官方文件使用的是class,我在這裡使用的是react hook

在react

react hook

useeffect是了react生命週期中的componentdidmountcomponentdidupdate以及componentwillunmount三個鉤子函式的組合。

return(

)}2.實現彈出層

我們按照官方文件,先生成乙個節點el作為存放我們子節點的容器,並執行reactdom.createportal

reactdom.createportal(child, container)
我們需要先將我們的el節點插入選定的dom節點,然後再將portal元素插入dom樹中,故我們先用hook在componentdidmount階段將el插入dom

(1)首先獲取我們要插入的dom節點id=model-root

const modelroot = document.getelementbyid('model-root');
(2)建立乙個存放子節點的元素el

const [el,changel] = usestate(document.createelement('div'));
(3)在componentdidmount階段將el節點插入model-root

//初始化工作

useeffect(()=>,)

(4)渲染元件,執行createportal方法

return reactdom.createportal((

), el);

(5)在componentwillunmount階段移除我們的el節點

//清理工作

useeffect(()=>

})

完整**如下:

import react, from 'react';

import './model.css';

import reactdom from "react-dom";

import excelutil from '../../utils/excelutil';

function content(props) }/>

)}function model(props),)

//清理工作

useeffect(()=>

})return reactdom.createportal((

), el);

}export default model;

這樣子子元素就出現在了我們想要的dom層級中

3.在呼叫頁中引入我們的model並定義相關觸發事件,這些與子節點向父節點的方式傳值無異

function registerinuser() 

return(

//這裡是使用的地方

匯入人員

}>

匯出**

react 父子傳值 react學習之彈出層

eact的彈出層不同於以往的dom程式設計,我們知道,在dom中,彈出層事件繫結在對應的節點上即可,但是在react中,往往只能實現父子之間的傳遞控制,顯然,彈出層的層級不符合此關係。在這裡我們需要使用react官方的portals portals可以幫助我們將子節點插入到父節點層級之外的地方 注 ...

製作彈出層

最近在做乙個公司部落格,頁面上用到了很多彈出層,於是大家就仿照著其他 上的彈出層做了乙個。提示 頁面彈出層樣式 background outdiv outtitle titlelayer closelayer outcontent outbottom outdiv input 頁面彈出層 funct...

layer關閉彈出層,彈出列印

常規的話,下面能夠完成關閉彈出層 var index parent.layer.getframeindex window.name 延遲關閉 解決列印視窗彈不出來的情況 parent.layer.close index 可是當這裡需要關閉的同時彈出列印視窗的時候,就會發現失效了,能關閉,可是列印視窗...