In this talk I shared some options on hybrid development and the Rails way of doing things, talking about how it works for Basecamp. Most of the ideas here are taken from Basecamp talks and texts, but I added my two cents in the slides and also sharing what it took for me to add Turbolinks in a demo application I got.
Sources per slide:
Slide 6:
- https://medium.com/@js_tut/anatomy-of-a-react-application-d465739ec6be
Slide 8:
- https://www.youtube.com/watch?v=SWEts0rlezA
Slide 9:
- https://en.wikipedia.org/wiki/Document_Object_Model
Slide 10, 11:
- https://www.youtube.com/watch?v=SWEts0rlezA
Slide 12:
- https://www.youtube.com/watch?v=SWEts0rlezA
- https://www.accelebrate.com/blog/the-real-benefits-of-the-virtual-dom-in-react-js/
- http://jgaskins.org/blog/2016/02/28/turbolinks-vs-the-virtual-dom
Slide 13:
- https://www.youtube.com/watch?v=SWEts0rlezA
- https://ssr.vuejs.org/en/
Slide 16:
- https://www.youtube.com/watch?v=SWEts0rlezA
Slide 17:
- https://www.youtube.com/watch?v=Cx6aGMC6MjU
- https://m.signalvnoise.com/the-majestic-monolith-29166d022228
- https://www.flickr.com/photos/planetargon/127984254/
Slide 18:
- https://www.youtube.com/watch?v=Cx6aGMC6MjU
Slide 20, 21, 22, 29:
- https://www.youtube.com/watch?v=SWEts0rlezA
Slide 30:
- https://github.com/turbolinks/turbolinks-android
25. // ...
import Turbolinks from 'turbolinks';
new Vue({
el: '#app',
components: {Deliveries},
});
Turbolinks.start();
26. // ...
import Turbolinks from 'turbolinks';
import VueTurbolinks from 'vue-turbolinks';
document.addEventListener('turbolinks:load', () => {
new Vue({
el: '#app',
mixins: [VueTurbolinks],
components: {Deliveries},
});
});
Turbolinks.start();
27. Nem tudo são flores...
→ Turbolinks não trabalha bem com forms HTML, eles aconselham a transformar
todo form em AJAX, o que no rails é fácil.
<%= form_for(@model,:html=>{:remote=>true}) do |f |%>
→ Alguns plugins e widgets de UI podem precisar de um maior cuidado, visto que
você tem que utilizar os hooks do Turbolinks para fazer a inicialição/destruição
dos mesmos.