92 karma · joined December 1, 2011
Nobody does react without jsx because it is the worst of both worlds, but if React had template strings (not necessarily built-in but at least as a first-party plugin) it would be a more viable option.
It is the simplest thing I could conceive (to build, not to use - I plan to provide more convenience, but the selling point is the ability to customize everything.) It's template based and without a virtual dom - during render, each variable used will be listened and when it changes, the element that uses it is updated directly, without recomparing the whole tree. It's still in progress.
I think it's great that Vue is capable without a build step; however, this implies one restriction, which is that you must have all the components loaded before the application starts. And Async components don't help here because you would have to mantain a list of components names, which without a build step become cumbersome.
I would like that my proposal for lazy loading components (https://github.com/vuejs/vue/pull/8807) would be accepted, then we would have the ability to load components on demand without a build step.
Can't this be solved by improving the transportation of the less durable varieties?
I developed my own custom scaffolding for Vue projects[0], which is a lot simpler and customizable. It even allows you to develop Vue projects without a build step/tool, you save and reload. Yes, there are tools that reload the page when you save, but I don't think they're worth the complexity.
It could be further improved to actually compile/build when you actually want to deploy, I hadn't the time or a strong need for it yet. But when you are developing, things need to be simple, I think you need to know everything that is happening in the browser so you can resolve any bug with much more speed and confidence.
That led me to create my own architecture to scaffold vue apps, which Evan You seems to hate.
https://github.com/vuejs/vue/issues/8106
In this comment, I showcased some production apps running with this:
https://github.com/vuejs/vue/issues/8106#issuecomment-386064...
https://github.com/vuejs/vue/pull/8807
I have improved this architecture even further in new apps, but I hadn't time yet to update the "vue-generator" boilerplate.
https://unpkg.com/@arijs/vue-generator/outra/pagina/index.ht...
https://unpkg.com/@arijs/vue-generator/outra/pagina/index.ht...
You can checkout it here: (example) https://unpkg.com/@arijs/vue-generator@0.1.5/outra/pagina/
github: https://github.com/arijs/VueGenerator
I had to ship a fork of Vue because the Vue mantainers won't accept the necessary changes to make this work.
It's not exactly a second way of loading async components - because the standard async components must be pre-registered in a list (your point #1) - It's a way of _lazily_ resolving components, i.e., only when they are needed. In fact, my change also works for synchronous components, that's why it's not duplicating functionality. But normally, if you already have the component definition loaded, you might as well register it, there's no point in lazily loading synchronous components.
But your #2 point, imho it's not a viable solution because it uglifies the application source code. The way components are loaded should be an implementation detail - for example, I could lazily load components during development and then compile those components before deploying to production into an bundle that automatically registers them all with Vue.
I fully agree with the need to be polite and humble when dealing with people, but maybe because I am not a native speaker, I never thought I was being aggressive, I simply saw(think?) that the people I communicate with didn't undestand what I was proposing, and as such I am trying to convince them of the very real need that I have.
I think that specifically in the case of Vue, this hurts more because of the philosophy highlighted in the article- to not stand in the way of experienced developers who know what they're doing.
(Edit: oh no, please don't come with the downvote train. This is a real issue, when you have something that solves 99% of your problems but you can't get it to 100%.)
Of course you have the right to deny a rise and let the employee go, maybe it really doesn't fit in your budget and/or you can hire someone else for less, but don't talk like the employee is wrong for searching a opportunity to grow.
(edit: typo)