70 lines
2.9 KiB
Markdown
70 lines
2.9 KiB
Markdown
# views.reagent
|
|
|
|
[Reagent][1] plugin for the [views][2] library, providing real-time component updates to server-side changes to data.
|
|
|
|
[1]: https://github.com/reagent-project/reagent
|
|
[2]: https://github.com/gered/views
|
|
|
|
|
|
## Usage
|
|
|
|
This library is made up of two core parts:
|
|
|
|
* The actual library, views.reagent, providing core functionality.
|
|
* A client/server communications plugin library which provides the glue code between whatever underlying client/server library you're using (e.g. [Sente][3] or [clj-browserchannel][4]) and views.reagent.
|
|
|
|
[3]: https://github.com/ptaoussanis/sente
|
|
[4]: https://github.com/gered/clj-browserchannel
|
|
|
|
To use views.reagent in your application, you need to add both the main library and one client/server communications plugin library as dependencies. See their respective pages linked to below for more information on doing this.
|
|
|
|
|
|
### Main Library Documentation
|
|
|
|
[See here for full documentation.][5]
|
|
|
|
[5]: https://github.com/gered/views.reagent/tree/master/views.reagent
|
|
|
|
|
|
### Client/Server Plugin Documentation
|
|
|
|
* **[views.reagent.sente][6]** provides fairly low-level integration with Sente.
|
|
* **[views.reagent.browserchannel][7]** for using BrowserChannel for client/server communication.
|
|
|
|
[6]: https://github.com/gered/views.reagent/tree/master/views.reagent.sente
|
|
[7]: https://github.com/gered/views.reagent/tree/master/views.reagent.browserchannel
|
|
|
|
|
|
### Examples
|
|
|
|
There are two example applications for you to look at to see a fully working web application with working views system configured and working.
|
|
|
|
* Todo MVC. There are two versions of this that are both largely identical except that [one uses Sente][8] and the [other uses BrowserChannel][9].
|
|
* [Class Registry][10]. This is a somewhat more complex application with a busy UI showing a bunch of data at once, but it does serve to show how a UI can be built from multiple different views at once. This example app uses Sente.
|
|
|
|
[8]: https://github.com/gered/views.reagent/tree/master/examples/todomvc
|
|
[9]: https://github.com/gered/views.reagent/tree/master/examples/todomvc-browserchannel
|
|
[10]: https://github.com/gered/views.reagent/tree/master/examples/class-registry
|
|
|
|
|
|
### Notes
|
|
|
|
views.reagent uses a separate plugin architecture for client/server communication mainly
|
|
because I've observed that there are at times a variety of different ways in which people
|
|
like to integrate client/server communications in their applications. I wanted to avoid
|
|
(as much as possible) doing anything that would require any specific way of doing this
|
|
kind of integration.
|
|
|
|
As well, speaking for myself, I use my own custom helper library that wraps over Sente which
|
|
I like but did not want to force anyone else to use.
|
|
|
|
The client/server glue code provided by these libraries is incredibly light so if they
|
|
do not meet your needs for whatever reason you should find it easy to create one yourself.
|
|
|
|
|
|
## License
|
|
|
|
Copyright © 2016 Gered King
|
|
|
|
Distributed under the the MIT License. See LICENSE for more details.
|