Combining Seaside with React

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
bpi
Reply | Threaded
Open this post in threaded view
|

Combining Seaside with React

bpi
Hello,

In https://github.com/SeasideSt/Seaside/issues/1023 I read this very promising sentence:
"We should publish the examples on how to combine Seaside with React"

I would be very interested in those. ;-) I have been thinking quite a bit about how to make my Seaside application more reactive.

- Bernhard
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Combining Seaside with React

Esteban A. Maringolo
If it works with React, it will probably will work with Vue.js too. ;-)

I recently came across this
https://shift.infinite.red/phoenixs-liveview-client-side-elixir-at-last-2280716ae791
and thought about having something similar with Seaside rendering,
pushing content via websockets and patching the DOM only where
necessary.

Pipe dreams, maybe...


Esteban A. Maringolo

El mié., 27 mar. 2019 a las 14:54, Bernhard Pieber
(<[hidden email]>) escribió:

>
> Hello,
>
> In https://github.com/SeasideSt/Seaside/issues/1023 I read this very promising sentence:
> "We should publish the examples on how to combine Seaside with React"
>
> I would be very interested in those. ;-) I have been thinking quite a bit about how to make my Seaside application more reactive.
>
> - Bernhard
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Combining Seaside with React

Johan Brichau-2
There is something here: https://github.com/jbrichau/Seaside-SPA
It’s not where I would want it to be and the issue is there to remind me I need to continue working on that to make it sufficiently generic.

Johan

On 27 Mar 2019, at 19:03, Esteban Maringolo <[hidden email]> wrote:

If it works with React, it will probably will work with Vue.js too. ;-)

I recently came across this
https://shift.infinite.red/phoenixs-liveview-client-side-elixir-at-last-2280716ae791
and thought about having something similar with Seaside rendering,
pushing content via websockets and patching the DOM only where
necessary.

Pipe dreams, maybe...


Esteban A. Maringolo

El mié., 27 mar. 2019 a las 14:54, Bernhard Pieber
(<[hidden email]>) escribió:

Hello,

In https://github.com/SeasideSt/Seaside/issues/1023 I read this very promising sentence:
"We should publish the examples on how to combine Seaside with React"

I would be very interested in those. ;-) I have been thinking quite a bit about how to make my Seaside application more reactive.

- Bernhard
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
bpi
Reply | Threaded
Open this post in threaded view
|

Re: Combining Seaside with React

bpi
In reply to this post by Esteban A. Maringolo
Thanks for the link! This is indeed very fascinating. It sounds exactly like the architecture I am after. Here is the official announcement, which describes their approach in a little bit more detail:
https://dockyard.com/blog/2018/12/12/phoenix-liveview-interactive-real-time-apps-no-need-to-write-javascript

Under the hood they use morphdom on the client to do the DOM diffing to calculate the minimal necessary DOM changes:
https://github.com/patrick-steele-idem/morphdom

This achieves the flicker-free UI updates. In theory it should be possible to use something like this with Seaside.

Phoenix LiveView also minimizes the network traffic by compiling HTML templates and only transfering the static parts during the initial rendering. I don't think this part could be replicated with Seaside because it is component based and the rendering is done dynamically.

In order to minimize network traffic, one would have to do the DOM diffing on the server and transfer only DOM changes.

- Bernhard


> Am 27.03.2019 um 19:03 schrieb Esteban Maringolo <[hidden email]>:
>
> If it works with React, it will probably will work with Vue.js too. ;-)
>
> I recently came across this
> https://shift.infinite.red/phoenixs-liveview-client-side-elixir-at-last-2280716ae791
> and thought about having something similar with Seaside rendering,
> pushing content via websockets and patching the DOM only where
> necessary.
>
> Pipe dreams, maybe...
>
>
> Esteban A. Maringolo
>
> El mié., 27 mar. 2019 a las 14:54, Bernhard Pieber
> (<[hidden email]>) escribió:
>>
>> Hello,
>>
>> In https://github.com/SeasideSt/Seaside/issues/1023 I read this very promising sentence:
>> "We should publish the examples on how to combine Seaside with React"
>>
>> I would be very interested in those. ;-) I have been thinking quite a bit about how to make my Seaside application more reactive.
>>
>> - Bernhard
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
bpi
Reply | Threaded
Open this post in threaded view
|

Re: Combining Seaside with React

bpi
In reply to this post by Johan Brichau-2
Hi Johan,

Thanks for posting this. I managed to load it into a Pharo7 image and had a look. If you are not too busy, I would appreciate if you could answer a few questions.

The WASPACounterComponent example seems to work. This is unrelated to Seaside-ReactJS, right?

However, none of the ReactJS demos work right now, correct? I did not see any reference to the React JavaScript library in the code. However, there are references to /public/vendor.js and /public.app.js. Am I missing something?

Most importantly, what do you want to achieve with Seaside-ReactJS? Probably it is different from what I have in mind.

- Bernhard

> Am 27.03.2019 um 19:36 schrieb Johan Brichau <[hidden email]>:
>
> There is something here: https://github.com/jbrichau/Seaside-SPA
> It’s not where I would want it to be and the issue is there to remind me I need to continue working on that to make it sufficiently generic.
>
> Johan
>
>> On 27 Mar 2019, at 19:03, Esteban Maringolo <[hidden email]> wrote:
>>
>> If it works with React, it will probably will work with Vue.js too. ;-)
>>
>> I recently came across this
>> https://shift.infinite.red/phoenixs-liveview-client-side-elixir-at-last-2280716ae791
>> and thought about having something similar with Seaside rendering,
>> pushing content via websockets and patching the DOM only where
>> necessary.
>>
>> Pipe dreams, maybe...
>>
>>
>> Esteban A. Maringolo
>>
>> El mié., 27 mar. 2019 a las 14:54, Bernhard Pieber
>> (<[hidden email]>) escribió:
>>>
>>> Hello,
>>>
>>> In https://github.com/SeasideSt/Seaside/issues/1023 I read this very promising sentence:
>>> "We should publish the examples on how to combine Seaside with React"
>>>
>>> I would be very interested in those. ;-) I have been thinking quite a bit about how to make my Seaside application more reactive.
>>>
>>> - Bernhard
>>> _______________________________________________
>>> seaside mailing list
>>> [hidden email]
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside