Javascript 在简单CRUD应用程序之外构建Django/React项目(概念)

Javascript 在简单CRUD应用程序之外构建Django/React项目(概念),javascript,reactjs,django,file-structure,Javascript,Reactjs,Django,File Structure,我已经用几个应用程序启动了一个Django项目,其中一个包含我的react。我想澄清一下最佳实践/专业偏好,因为它涉及到使用Django和React的全栈应用程序中的文件结构和基于url的区分视图。现在,唯一一个似乎与Django Rest API交互的js文件是App.js,但我显然想在此基础上进行扩展,并创建与我的后端交互的不同组件。我是否只从每个组件文件中的api获取数据?另外,要创建不同的视图,就像在我的index.js中一样,我为main.js加载已编译网页的静态文件。如果我想拥有不同

我已经用几个应用程序启动了一个Django项目,其中一个包含我的react。我想澄清一下最佳实践/专业偏好,因为它涉及到使用Django和React的全栈应用程序中的文件结构和基于url的区分视图。现在,唯一一个似乎与Django Rest API交互的js文件是App.js,但我显然想在此基础上进行扩展,并创建与我的后端交互的不同组件。我是否只从每个组件文件中的api获取数据?另外,要创建不同的视图,就像在我的index.js中一样,我为main.js加载已编译网页的静态文件。如果我想拥有不同的页面,我是否需要为每个页面视图在main.js文件中编译一个网页包

假设我想创建一个关于页面和一个主页。创建两个django应用程序,一个用作页面视图,另一个用作主页视图,这是最佳实践吗?如果没有,你有什么建议

这是我的App.js

import React, { Component } from "react";
import { render } from "react-dom";

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      data: [],
      loaded: false,
      placeholder: "Loading"
    };
  }

  componentDidMount() {
    fetch("api/lead")
      .then(response => {
        if (response.status > 400) {
          return this.setState(() => {
            return { placeholder: "Something went wrong!" };
          });
        }
        return response.json();
      })
      .then(data => {
        this.setState(() => {
          return {
            data,
            loaded: true
          };
        });
      });
  }

  render() {
    return (
      <ul>
        {this.state.data.map(contact => {
          return (
            <li key={contact.id}>
              {contact.name} - {contact.email}
              <h1>Hi</h1>
            </li>
          );
        })}
      </ul>
    );
  }
}

export default App;

const container = document.getElementById("app");
render(<App />, container);
import React,{Component}来自“React”;
从“react dom”导入{render};
类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
数据:[],
加载:false,
占位符:“加载”
};
}
componentDidMount(){
获取(“api/潜在客户”)
。然后(响应=>{
如果(response.status>400){
返回此.setState(()=>{
返回{占位符:“出了问题!”};
});
}
返回response.json();
})
。然后(数据=>{
此.setState(()=>{
返回{
数据,
加载:正确
};
});
});
}
render(){
返回(
    {this.state.data.map(contact=>{ 返回(
  • {contact.name}-{contact.email} 你好
  • ); })}
); } } 导出默认应用程序; const container=document.getElementById(“应用”); 渲染(,容器);
我的index.js

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Django REST with React</title>
</head>
<body>
<div id="app">
    <!-- React will load here -->
</div>
</body>
{% load static %}
<script src="{% static "frontend/main.js" %}"></script>
</html>

Django休息与反应
{%load static%}
另外,在我的index.html文件中,我正在关注的教程的创建者添加了“React will load here”这只是调用每个组件的div的id吗

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Django REST with React</title>
</head>
<body>
<div id="app">
    <!-- React will load here -->
</div>
</body>
{% load static %}
<script src="{% static "frontend/main.js" %}"></script>
</html>

Django休息与反应
{%load static%}
提前谢谢。希望这能帮助那些希望使用Django和React创建fullstack应用程序的人理解未来的文件结构和最佳实践