DevExtreme React - Overview
The Popup widget is a pop-up window overlaying the current view.
The following code adds a simple Popup to your page, along with a Button that invokes it. The simplest configuration of the Popup requires the content and title to be specified.
jQuery
<div id="popupContainer">
    <p>Popup content</p>
</div>
<div id="buttonContainer"></div>
$(function() {
    $("#popupContainer").dxPopup({
        title: "Popup Title"
    });
    $("#buttonContainer").dxButton({
        text: "Show the Popup", 
        onClick: function () {
            $("#popupContainer").dxPopup("show");
        } 
    });
});Angular
<dx-popup
    title="Popup Title"
    [(visible)]="isPopupVisible">
    <div *dxTemplate="let data of 'content'">
        <p>Popup content</p>
    </div>
</dx-popup>
<dx-button
    text="Show the Popup"
    (onClick)="isPopupVisible = true">
</dx-button>
import { DxPopupModule, DxButtonModule } from "devextreme-angular";
// ...
export class AppComponent {
    isPopupVisible: boolean = false;
}
@NgModule({
    imports: [
        // ...
        DxPopupModule,
        DxButtonModule
    ],
    // ...
})Vue
<template>
    <div>
        <DxPopup
            title="Popup Title"
            :visible.sync="isPopupVisible">
            <template>
                <p>Popup content</p>
            </template>
        </DxPopup>
        <DxButton
            text="Show the Popup"
            @click="onClick"
        />
    </div>
</template>
<script>
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';
import { DxPopup } from 'devextreme-vue/popup';
import { DxButton } from 'devextreme-vue/button';
export default {
    components: {
        DxPopup,
        DxButton
    },
    data() {
        return {
            isPopupVisible: false
        };
    },
    methods: {
        onClick() {
            this.isPopupVisible = true;
        }
    }
}
</script>React
import React from 'react';
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';
import { Popup } from 'devextreme-react/popup';
import { Button } from 'devextreme-react/button';
const renderContent = () => {
    return (
        <p>Popup content</p>
    );
}
class App extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            isPopupVisible: false
        };
        this.onClick = this.onClick.bind(this);
        this.onHiding = this.onHiding.bind(this);
    }
    onClick() {
        this.setState({
            isPopupVisible: true
        });
    }
    onHiding() {
        this.setState({
            isPopupVisible: false
        });
    }
    render() {
        return (
            <div>
                <Popup
                    title="Popup Title"
                    visible={this.state.isPopupVisible}
                    contentRender={renderContent}
                    onHiding={this.onHiding}
                />
                <Button
                    text="Show the Popup"
                    onClick={this.onClick}
                />
            </div>
        );
    }
}
export default App;There are several ways to specify the content of the Popup. Learn more in the Customize the Content article. The Popup can also be displayed with a toolbar. For detailed information, see the Specify Toolbar Items topic.
See Also
- Configure a Widget: Angular | Vue | React | jQuery | AngularJS | Knockout | ASP.NET MVC 5 | ASP.NET Core
- Popup - Customize the Appearance
- Popup - Show and Hide the Popup
- Popup - Resize and Relocate
- Popup API Reference
If you have technical questions, please create a support ticket in the DevExpress Support Center.