WPTavern: Why Vue.js Creator Evan You Thinks Vue Could Be a Good Fit for WordPress
photo credit: JSConf China
After last week’s news that WordPress is abandoning React due to its unfavorable patents clause, the discussion regarding the selection of a new framework is heating up again. As Vue is once again among the leading contenders, I reached out to Vue.js creator Evan You to get his perspective on the possibility of WordPress adopting the framework.
“Yes, I had a conversation with the WordPress team mostly answering questions they had about Vue,” You said. “The discussion happened before Matt’s announcement of moving away from React. It was mostly intended for filling the team in with the state of Vue and there was no particular conclusion made from it.
“To be honest, I got the feeling that the team had already decided to go with React and simply wanted to explore other options before they make the final call. I was a bit surprised by Matt’s post, but also understand the concerns behind that decision. I think React is a technically sound choice, and the whole patent issue is unfortunate.”
Vue is back in the mix alongside Preact.js and other libraries WordPress core contributors are considering adopting. You has been active in the comments on the WordPress core development blog during the previous discussion, as well as more recently in the discussion in Gutenberg’s GitHub repo, clarifying misconceptions about the financial stability of the project.
You has been careful to disclose his bias when participating in conversations about which framework WordPress should adopt. During my interview with him, he offered the community three reasons why he sees Vue as a good fit for the project:
“Now that WP has decided to pick a different framework, as the creator of Vue, I surely hope that the WordPress team can adopt Vue,” You said. “Below is why I believe Vue would be a good fit for the choice:
- “As an independent open source project (not born from within a major corporate), Vue provides a good alignment in terms of OSS values with the WordPress project. It’s fully MIT licensed, and its development is sustained by open financial contribution channels (via Patreon and OpenCollective). This means WordPress can easily ensure Vue’s sustainability by becoming a major sponsor.
- “Vue is one of the most approachable frameworks out there, with an established and active community, and ever-growing amount of learning resources. Adopting Vue would provide a low entry barrier and smooth learning curve for devs just getting into WordPress development. This also aligns with what made WordPress successful.
- “As an incrementally adoptable framework, Vue’s flexibility means it can be adapted in different use cases ranging from embedded widgets, plugin development to full single-page applications. It can be used without any compilation step in simple use cases, while being mature and powerful enough for more complex use cases such as Calypso and Gutenberg. It offers the complete stack from vdom + ability to use raw render functions, server-side rendering, routing, state management, build tooling, browser devtool extensions, to editor tooling support.”
WP Tavern has also reached out to Jason Miller, creator of Preact.js to get his perspective on the possibility of WordPress selecting Preact and what it would mean for both projects. The React-alternative is another strong contender among JS libraries WordPress is looking at for use in core.
The Gutenberg team has been working to ensure that WordPress developers will be able to create “Gutenblocks” using any JS library they prefer with different explorations of framework-agnostic block rendering. Ultimately, this would make creating plugins and themes less dependent on the library that is chosen for use in core. Other community members involved in the discussion, however, are keen to emphasize that the framework selected will have an impact on the greater WordPress product ecosystem, far beyond its use in Gutenberg, and are not eager to down play it as a simple technical decision. We’ll have a more detailed look on that in a separate post.