Code Monkey home page Code Monkey logo

10-javascript-frameworks's Introduction

10 Framework Comparsion

Build a simple todo app with...

  1. Vanilla JS
  2. React
  3. Angular
  4. Vue
  5. Svelte
  6. Lit
  7. Alpine
  8. Solid
  9. Stencil
  10. Mithril

Watch the full JS framework comparison on YouTube

10-javascript-frameworks's People

Contributors

codediodeio avatar marzelin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

10-javascript-frameworks's Issues

Nice video! But just one minor remark...

I enjoy the whirlwind tour of all those frameworks - five of those I didn't even know existed! I have only work with vue and react so seeing the other frameworks with a simple app was great. I was thinking it was too simple but it made it a lot easier to compare the frameworks at a glance.

My only remark is that HTML/DOM can be written more declarative than you show.

<!-- `return false` is equal to `event.preventDefault()` -->
<form onsubmit="addTodo(this.elements.todo.value); this.reset(); return false">
    <input name="todo" type="text">
    <input type="submit" value="Add Todo">
</form>
function createListElement(text) {
    const li = document.createElement('li');
    li.textContent = text; // faster and safer than .innerHTML
    return li;
}

function addTodo(todoText) {
    todoData.push(todoText);
    todoList.appendChild(createListElement(todoText));
    localStorage.setItem('todos', JSON.stringify(todoData));
}

Alpine demo errors

When running through a local webhost in Chrome Version 96.0.4664.110 for Windows, I get these errors in the developer console when viewing /alpine-app/index.html:

image

Attempting to add an item using the form will repeat the warning and error.

Why do you hate vuejs?

I think the movement is insane. You bet on angular, and it has little adoption. Who cares? You should be able to use any tool, who cares what people think. Give it a try! I am a total noob, and your videos quite literally run our company. I absolutely love Firebase, and your channel. Am a long time Google user myself. But when it comes to angular, I think vuejs is just more intuitive.

<3

Add a bundle size comparison table

This framework comparison is awesome. In the video, you talk about the pros and cons for each framework but you don't talk about the size of the final project.

I think you could add a comparison table in the main readme. I did some tests and was surprised how small is the Svelte output. Theses size considerations can help choosing a framework.

Maybe try this again with mobile development?

I think it would be a good idea to do this type of video again but with mobile development tools like Objective C and SwiftUI for iOS, Kotlin and Java for Android, and Flutter and React Native for cross platform. Plus I think there's some cross platform tool for kotlin too. Thanks

Vue sources missing?

Vue app in repo appears to be the default generated hello world app, rather than the demo app from the video!

(Can I say thanks for the quick and useful framework comparison here?)

bug in vanilla code

When you have some todos in local storage they're added twice to todoData since addTodo pushes each one to the array:

const todoData = existingTodos || [];
todoData.forEach(todo => {
addTodo(todo);
});
function addTodo(todoText) {
todoData.push(todoText);

You'll have twice as much todos on the next page load.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.