在畫中畫視窗中安裝 React 元件

aow054發表於2024-09-22
google 在 chrome 116 中引入了 documentpictureinpicture api。在本文中,我們將探討如何在畫中畫視窗中安裝一個簡單的 react 元件,而無需先將其安裝在我們的主應用程式上。第 1 步 - 設定元件結構我們製造兩個元件。 maincomponent.js 和 counter.js。在 maincomponent.js 中,我們設定了一個簡單的按鈕,它將在 pip 視窗中開啟 counter.js 元件。maincomponent.jsimport react from "react";const maincomponent = () =&gt; { async function openpictureinpicture() { // } return ( <div> <div onclick="{openpictureinpicture}">open counter</div> </div> );};export default maincomponent;登入後複製counter.jsimport react, { usestate, useeffect } from "react";const counter = () =&gt; { const [count, setcount] = usestate(0); useeffect(() =&gt; { setcount(1); }, []); const addnumber = () =&gt; { setcount((prevcount) =&gt; prevcount + 1); }; const subtractnumber = () =&gt; { setcount((prevcount) =&gt; prevcount - 1); }; try { return ( <div> <div onclick="{subtractnumber}">-</div> <button>{count}</button> <div onclick="{addnumber}">+</div> </div> ); } catch (error) { console.error("error_code: _render ", error); return &gt;; }};export default counter;登入後複製第 2 步 — 新增畫中畫功能在 openpictureinpicture() 函式中,我們請求圖片視窗中的圖片。const pipwindow = await window.documentpictureinpicture.requestwindow();登入後複製我們在 pip 視窗的主體中建立一個 div 元素。在此 div 上,我們將安裝 counter.jsconst pipdiv = pipwindow.document.createelement("div");pipdiv.setattribute("id", "pip-root");pipwindow.document.body.append(pipdiv);登入後複製現在我們將 counter.js 元件掛載到 id 為“pip-root”的 div 上。const pip_root = reactdom.createroot( pipwindow.document.getelementbyid("pip-root"));pip_root.render(<counter></counter>);登入後複製第 3 步 — 組合所有最終的 maincomponent.js 程式碼應該如下所示。import React from "react";import Counter from "./Counter";import ReactDOM from "react-dom/client";const MainComponent = () =&gt; { async function openPictureInPicture() { const pipWindow = await window.documentPictureInPicture.requestWindow(); const pipDiv = pipWindow.document.createElement("div"); pipDiv.setAttribute("id", "pip-root"); pipWindow.document.body.append(pipDiv); const PIP_ROOT = ReactDOM.createRoot(pipWindow.document.getElementById("pip-root")); PIP_ROOT.render(<counter></counter>); } return ( <div> <div onclick="{openPictureInPicture}">Open counter</div> </div> );};export default MainComponent;登入後複製現在我們有自己的 react 元件安裝在圖片視窗的圖片上! 以上就是在畫中畫視窗中安裝 React 元件的詳細內容,更多請關注我的其它相關文章!

相關文章