LINUX.ORG.RU

React vs Vue vs Svelte vs somebuzzword: что лучше?

 , svelte,


0

2

React/pReact

App.jsx:

import { h, Component } from 'preact'

export default class App extends Component {
  state = {
    counter: 0,
  }
  increaseCounter = (e) => {
    this.setState((state) => ({
      counter: ++state.counter
    }))
  }
  render(_, { counter }) {
    return (
      <button onClick={this.increaseCounter}>
        Count: {counter}
      </button>
    )
  }
}

index.js:

import { h, render } from 'preact'
import App from './App'


render(<App />, document.querySelector('#app'))

Vue

App.vue:

<template lang="pug">
button(@click="++counter") Count: {{ counter }}
</template>

<script>
export default {
  data: () => ({
    counter: 0,
  }),
}
</script>

index.js:

import Vue from 'vue'
import App from './App.vue'

new Vue({
  el: '#app',
  render: h => h(App)
})

Svelte

App.svelte:

<script>
let counter = 0
</script>

<button on:click={() => ++counter}>Count: {counter}</button>

index.js:

import App from './App.svelte'

export default new App({
  target: document.body,
})

Прочее

index.html примерно общий для всех:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta charset="utf-8" />
    <title></title>
    <meta name="author" content="" />
    <meta name="keywords" content="" />
    <meta name="description" content="" />
  </head>
  <body>
    <div id="app"></div>
    <script src="./index.js"></script>
  </body>
</html>

Запускал все через parcel.

Можно ли сделать на основании этих примеров вывод о громоздкости реакта? Или вы можете привести примеры, где React менее многословен (это у меня еще без TypeScript). Сейчас примерно половина вакансий с React. Мне нужно определиться нужно ли вдовесок выучить эту парашу (хотя там учить особо нечего, но меня тошнит от смешения разметки и js)

★★

Последнее исправление: tz4678 (всего исправлений: 2)

Ответ на: комментарий от Nervous

Ну не одним же петухам на самокатах кукарекать в треде. Даешь разнообразие видов!

bread
()
Ответ на: комментарий от Nervous

Слушай, ты вроде шаришь, у нас есть какой-то аналог clojurescript биндинга к реакту, только для vue, кроме glue? И вообще ты vue пробовал, если да, можешь написать пару строк мнения на эту тему (я вообще с фронтендом не работал в этом разрезе)? Сенку, Мизес благословит тебя на небесах.

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

есть какой-то аналог clojurescript биндинга к реакту, только для vue, кроме glue?

Как-то не сталкивался ни с glue, ни с аналогами.

И вообще ты vue пробовал

На vue писал, жить можно.

А что, у нас появились смельчаки, готовые катить cljs в продакшен?

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

На vue писал, жить можно.

Плюсы минусы относительно реакта, если можно в двух словах?

А что, у нас появились смельчаки, готовые катить cljs в продакшен?

Да вроде есть такие, modnakasta, например.

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

Плюсы минусы относительно реакта, если можно в двух словах?

С моего скромного дивана разница в количестве магии и функционального уклона. У вью больше первого и меньше второго, у реакта наоборот. Наверное, именно поэтому реакт популярнее для спаривания с кложей.

Nervous ★★★★★
()
Ответ на: комментарий от tz4678

Я могу написать: React говно, Vue лучше. ClosureScript не нужен.

Похоже, царь успел брызнуть на тебя слюной и теперь ты станешь ооп-сектантом. Или уже.

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

ты станешь ооп-сектантом

Я пишу на Python.

tz4678 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.