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)