Javascript 如何将ReactJS应用程序与Wagtail API集成。要遵循的步骤?

Javascript 如何将ReactJS应用程序与Wagtail API集成。要遵循的步骤?,javascript,reactjs,wagtail,web-frontend,wagtail-apiv2,Javascript,Reactjs,Wagtail,Web Frontend,Wagtail Apiv2,我正在尝试在ReactJS中编写应用程序,后端将使用WagtailAPI。 我试图找出前端和后端需要执行哪些步骤/配置才能将ReactJS与Wagtail集成?使用哪个后端并不重要。您只需要在React中从API调用服务 小例子: 文件index.js import React from 'react'; import ReactDOM from 'react-dom'; import App from "./App"; export class ReactApp {

我正在尝试在ReactJS中编写应用程序,后端将使用WagtailAPI。
我试图找出前端和后端需要执行哪些步骤/配置才能将ReactJS与Wagtail集成?

使用哪个后端并不重要。您只需要在React中从API调用服务

小例子:

文件index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from "./App";

export class ReactApp {
    static renderService(props, element) {
        ReactDOM.render(<App {...props}/>, element);
    }
}

window.ReactApp = ReactApp;
import React from 'react';

class App extends React.PureComponent {

    constructor(props) {
        super(props);

        this.state = {
            data: null,
            inProgress: false
        }
    }

    async fetchData(url) {
        return await fetch(url)
            .then((response) => response.json())
            .then(data => this.setState({data}))
            .finally((e) => {
                this.setState({inProgress: false})
            });
    }

    componentDidMount() {
        this.fetchData(this.props.url);
    }


    render() {
        const {data, inProgress} = this.state;

        return (
            <div className="app">
                {
                    !inProgress && data &&
                    (
                        <div className="app__list">
                            {
                                data.map(item => <span className="app__list-item">{item.title}</span>)
                            }
                        </div>
                    )
                }
            </div>

        );
    }
}

export default App;
从“React”导入React;
从“react dom”导入react dom;
从“/App”导入应用程序;
导出类应用程序{
静态渲染服务(道具、元素){
render(,元素);
}
}
window.ReactApp=ReactApp;
文件App.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from "./App";

export class ReactApp {
    static renderService(props, element) {
        ReactDOM.render(<App {...props}/>, element);
    }
}

window.ReactApp = ReactApp;
import React from 'react';

class App extends React.PureComponent {

    constructor(props) {
        super(props);

        this.state = {
            data: null,
            inProgress: false
        }
    }

    async fetchData(url) {
        return await fetch(url)
            .then((response) => response.json())
            .then(data => this.setState({data}))
            .finally((e) => {
                this.setState({inProgress: false})
            });
    }

    componentDidMount() {
        this.fetchData(this.props.url);
    }


    render() {
        const {data, inProgress} = this.state;

        return (
            <div className="app">
                {
                    !inProgress && data &&
                    (
                        <div className="app__list">
                            {
                                data.map(item => <span className="app__list-item">{item.title}</span>)
                            }
                        </div>
                    )
                }
            </div>

        );
    }
}

export default App;
从“React”导入React;
类App扩展了React.PureComponent{
建造师(道具){
超级(道具);
此.state={
数据:空,
进程:错误
}
}
异步获取数据(url){
返回等待获取(url)
.then((response)=>response.json())
.then(data=>this.setState({data}))
.最后((e)=>{
this.setState({inProgress:false})
});
}
componentDidMount(){
this.fetchData(this.props.url);
}
render(){
const{data,inProgress}=this.state;
返回(
{
!inProgress&&data&&
(
{
data.map(item=>{item.title})
}
)
}
);
}
}
导出默认应用程序;
然后使用带有index.js入口点的webpack构建js代码,并在html中调用它

<div id="app"></div>
<script  type="text/javascript" src="build.js"></script>
<script>
    ReactApp. renderService({url: 'https://yourApiUrl'}, document.getElementById('app'));
</script>

反应应用程序。renderService({url:'https://yourApiUrl'},document.getElementById('app');

使用哪个后端并不重要。您只需要在React中从API调用服务

小例子:

文件index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from "./App";

export class ReactApp {
    static renderService(props, element) {
        ReactDOM.render(<App {...props}/>, element);
    }
}

window.ReactApp = ReactApp;
import React from 'react';

class App extends React.PureComponent {

    constructor(props) {
        super(props);

        this.state = {
            data: null,
            inProgress: false
        }
    }

    async fetchData(url) {
        return await fetch(url)
            .then((response) => response.json())
            .then(data => this.setState({data}))
            .finally((e) => {
                this.setState({inProgress: false})
            });
    }

    componentDidMount() {
        this.fetchData(this.props.url);
    }


    render() {
        const {data, inProgress} = this.state;

        return (
            <div className="app">
                {
                    !inProgress && data &&
                    (
                        <div className="app__list">
                            {
                                data.map(item => <span className="app__list-item">{item.title}</span>)
                            }
                        </div>
                    )
                }
            </div>

        );
    }
}

export default App;
从“React”导入React;
从“react dom”导入react dom;
从“/App”导入应用程序;
导出类应用程序{
静态渲染服务(道具、元素){
render(,元素);
}
}
window.ReactApp=ReactApp;
文件App.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from "./App";

export class ReactApp {
    static renderService(props, element) {
        ReactDOM.render(<App {...props}/>, element);
    }
}

window.ReactApp = ReactApp;
import React from 'react';

class App extends React.PureComponent {

    constructor(props) {
        super(props);

        this.state = {
            data: null,
            inProgress: false
        }
    }

    async fetchData(url) {
        return await fetch(url)
            .then((response) => response.json())
            .then(data => this.setState({data}))
            .finally((e) => {
                this.setState({inProgress: false})
            });
    }

    componentDidMount() {
        this.fetchData(this.props.url);
    }


    render() {
        const {data, inProgress} = this.state;

        return (
            <div className="app">
                {
                    !inProgress && data &&
                    (
                        <div className="app__list">
                            {
                                data.map(item => <span className="app__list-item">{item.title}</span>)
                            }
                        </div>
                    )
                }
            </div>

        );
    }
}

export default App;
从“React”导入React;
类App扩展了React.PureComponent{
建造师(道具){
超级(道具);
此.state={
数据:空,
进程:错误
}
}
异步获取数据(url){
返回等待获取(url)
.then((response)=>response.json())
.then(data=>this.setState({data}))
.最后((e)=>{
this.setState({inProgress:false})
});
}
componentDidMount(){
this.fetchData(this.props.url);
}
render(){
const{data,inProgress}=this.state;
返回(
{
!inProgress&&data&&
(
{
data.map(item=>{item.title})
}
)
}
);
}
}
导出默认应用程序;
然后使用带有index.js入口点的webpack构建js代码,并在html中调用它

<div id="app"></div>
<script  type="text/javascript" src="build.js"></script>
<script>
    ReactApp. renderService({url: 'https://yourApiUrl'}, document.getElementById('app'));
</script>

反应应用程序。renderService({url:'https://yourApiUrl'},document.getElementById('app');