React.js蓝图ContextMenu2高级用法

React.js蓝图ContextMenu2高级用法

Blueprint是一种基于React的用于Web的UI工具包。该库非常优化和流行,用于构建复杂且数据密集的桌面应用程序界面。

在本文中,我们将讨论React.js蓝图ContextMenu2的高级用法。上下文菜单在右键单击目标元素后显示一系列操作。ContextMenu2只是ContextMenu和ContextMenuTarget的替代品。ContextMenu2默认渲染其子元素周围的包装器元素以附加事件处理程序,但如果此元素破坏HTML或CSS布局并且希望移除它,则可以使用ContextMenu2高级渲染API完成。

React.js蓝图ContextMenu2 Props:

  • children: 它表示上下文菜单目标。
  • className: 它表示要传递给子元素的一个空格分隔的类名列表。
  • content: 它显示菜单内容,通常是一个Blueprint’组件。
  • disabled: 它确定上下文菜单是否禁用。
  • onContextMenu: 它是一个可选的上下文菜单事件处理程序,在我们想要在鼠标事件中执行与渲染上下文菜单本身无关的操作时使用,例如在React中设置一个状态。
  • popoverProps: 它表示要传递给由contextMenu组件生成的弹出窗口的有限子集props。
  • tagName: 它表示用于容器元素的HTML标签。

语法:

<ContextMenu
    content={...}
    ...
>
    <div>Right Click</div>
</ContextMenu>

创建React应用程序并安装模块:

步骤1: 使用以下命令创建React应用程序:

npm create-react-app appname

步骤2: 创建项目文件夹,例如appname,使用以下命令进行切换:

cd appname

步骤3: 创建ReactJS应用后,使用以下命令安装所需模块:

npm install @blueprintjs/core

步骤4: 安装 @blueprintjs popover2 组件。

npm install @blueprintjs/popover2

项目结构:

React.js蓝图ContextMenu2高级用法

步骤5: 运行项目如下:

npm start

示例1: 下面的示例演示了contextMenu2组件的高级使用方式。

import React from "react"; 
import "@blueprintjs/core/lib/css/blueprint.css"; 
import { Menu } from "@blueprintjs/core"; 
import { ContextMenu2, MenuItem2 } from "@blueprintjs/popover2"; 
import "@blueprintjs/select/lib/css/blueprint-select.css"; 
import classNames from "classnames"; 
  
export default function App() { 
    return ( 
        <center> 
            <div style={{ textAlign: "center",  
                color: "green" }}> 
                <h1>GeeksforGeeks</h1> 
                <h2> 
                    ReactJs Blueprint ContextMenu2 Advanced usage 
                </h2> 
            </div> 
            <ContextMenu2 
                content={ 
                    <Menu> 
                        <MenuItem2 text="Download" /> 
                        <MenuItem2 text="Print" /> 
                        <MenuItem2 text="Delete" intent="danger" /> 
                    </Menu> 
                } 
            > 
                {(ContextMenu2ChildrenProps) => ( 
                    <div 
                        className={classNames 
                            ("my-context-menu-target",  
                            ContextMenu2ChildrenProps.className)} 
                        onContextMenu= 
                            {ContextMenu2ChildrenProps.onContextMenu} 
                        ref={ContextMenu2ChildrenProps.ref} 
                        style={{ 
                            backgroundColor: "#1EA902", 
                            color: "white", 
                            width: 100, 
                            padding: 10, 
                            borderRadius: 20, 
                        }} 
                    > 
                        {ContextMenu2ChildrenProps.popover} 
                        Right click me! 
                    </div> 
                )} 
            </ContextMenu2> 
        </center> 
    ) 
} 

输出:

React.js蓝图ContextMenu2高级用法

示例2: 下面的示例演示了禁用contextMenu2组件的高级用法。

import React from "react"; 
import "@blueprintjs/core/lib/css/blueprint.css"; 
import { Menu } from "@blueprintjs/core"; 
import { ContextMenu2, MenuItem2 } from "@blueprintjs/popover2"; 
import "@blueprintjs/select/lib/css/blueprint-select.css"; 
import classNames from "classnames"; 
  
export default function App() { 
    return ( 
        <center> 
            <div style={{ textAlign: "center",  
                color: "green" }}> 
                <h1>GeeksforGeeks</h1> 
                <h2> 
                    ReactJs Blueprint ContextMenu2 Advanced usage 
                </h2> 
            </div> 
            <ContextMenu2 
                disabled={true} 
                content={ 
                    <Menu> 
                        <MenuItem2 text="Download" /> 
                        <MenuItem2 text="Print" /> 
                        <MenuItem2 text="Delete" intent="danger" /> 
                    </Menu> 
                } 
            > 
                {(ContextMenu2ChildrenProps) => ( 
                    <div 
                        className={classNames 
                            ("my-context-menu-target",  
                        ContextMenu2ChildrenProps.className)} 
                        onContextMenu={ 
                            ContextMenu2ChildrenProps.onContextMenu} 
                        ref={ContextMenu2ChildrenProps.ref} 
                        style={{ 
                            backgroundColor: "#1EA902", 
                            color: "white", 
                            width: 150, 
                            padding: 10, 
                            borderRadius: 20, 
                        }} 
                    > 
                        {ContextMenu2ChildrenProps.popover} 
                        Right click disabled! 
                    </div> 
                )} 
            </ContextMenu2> 
        </center> 
    ) 
} 

输出:

React.js蓝图ContextMenu2高级用法

参考: https://blueprintjs.com/docs/#popover2-package/context-menu2

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程