A zero-fuss way to create non single page apps with react.
Project description
React Pages
A zero-fuss way to create non single page apps with react.
- Zero Configuration required.
- Go from development to production with ease.
Features
- custom react scripts
- Imports from other pages (create-react-app doesn't allow that)
- Natively use react in django.
- Ready-to-serve production builds with the proper paths. (using
--static-url
option)
Terminology
Project
The project contains the node.js modules necessary to use react and the pages you create.
└── project
├── package.json
├── package-lock.json
├── .env
├── .gitignore
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
<pages>
Page:
A page is a directory containing at least an index.js
file, (and other css/js files specific to your application.)
└── page
├── App.css
├── App.js
├── App.test.js
├── index.css
├── index.js
├── logo.svg
└── registerServiceWorker.js
QuickStart
pip install react-pages
Commands :
$ react-pages project poll_react_pages # create a project
$ cd poll_react_pages
$ react-pages page vote # create a page
$ react-pages react_pages # development
$ react-pages deploy # production
$ react-pages runserver # django runserver alternative
Django Integration
settings.py
INSTALLED_APPS = [
...
'react_pages',
...
]
# React Pages
REACT_PAGES_PROJECT_DIR = os.path.join(BASE_DIR, 'my_project') # specify the react-pages project
STATICFILES_DIRS = [
...
os.path.join(REACT_PAGES_PROJECT_DIR, 'build') # mark the build dir as static file dir
...
]
template.html
{% load react_pages %}
...
{% render_react_page 'vote' %}
...
Remeber to use react-pages runserver
instead of manage.py runserver
!
That's it! React Pages will pick-up the "vote" page from "poll_react_pages" project and do the necessary work to transpire react JSX.
Django Context
You can pass django template context varialbes like so -
views.py
context['foo'] = [1, 2, 3]
template.html
{% render_react_page 'vote' foo=foo %}
Then access these anywhere in react code
console.log(foo);
Note: These must be JSON serialize-able
For production, just put DEBUG=False
in settings.py
and relax.
Existing projects
React Pages will automatically patch itsef into any existing project,
that was created using create-react-app
.
Just run react-pages project .
from your project directory!
Projects not using create-react-app
will probably work, but no guarantees can be made.
Issues
- It might not uninstall using pip. As a temporary fix, Run
react-pages uninstall
once, and thenpip uninstall react-pages
will work.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file react-pages-0.1.1.tar.gz
.
File metadata
- Download URL: react-pages-0.1.1.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 142127736602a8fa95550b7cbbb71699bd251b047d2c867d1dd8114792e669a7 |
|
MD5 | 829d6565079a45c0b56db26d0d57f60d |
|
BLAKE2b-256 | ef8bf4d9dfd5c1815f2efaa1869eb6110ba70aa66f927492db70c133962fb6d8 |
File details
Details for the file react_pages-0.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: react_pages-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 145.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95b103a6f3ee9e56eeab597f0d19ca003c3b1128fbeeb3c43eddddffa2b4a7ec |
|
MD5 | 88502f7640d889a8214aefbb30bdcb91 |
|
BLAKE2b-256 | 84002ba4816c631d073e4dea0d7df9d84e53d90c9b2edd0038a56e93f4b5c0df |