设置JavaScript框架标准(React-Set Standard出了什么问题,以及为什么每个人都应该像Svelte一样)
#javascript #网络开发人员 #react #svelte

React很棒,是的,绝对没有谎言。它于2013年5月29日发布,并由Facebook(咳嗽-Metaâ)维护,它已成长为最常用的JavaScript框架 - 或Libraryð,抑制Angular并在坚果中踢jQuery。<
迄今为止,构建Web应用程序的标准方式是由这个超人框架定义的,这是很长一段时间以来最推荐的框架,但是如果要更改它,该怎么办?反应,尽管如此,所有的荣耀都是狗屎(我们都知道,是的。但是我们不承认),可悲的是,这是我们许多心爱的框架所拥有的复杂性之路,而且一直是一个凌乱的泥节。在本文中,我们将研究React Web标准的某些方面,这些方面并非如此出色,以及为什么Svelte应该为JavaScript框架和Web开发设置最新标准。现在您可能不同意我的看法,但是希望在这结束后,您会很好地看一下自己,说,也许这个家伙可能是对的。

国家管理

状态管理是大多数JavaScript框架的有用方面之一,它是跨应用程序跨多个数据流的输入或数据状态的管理。 React确实具有内置的州管理功能,但是您宁愿使用Redux或其他一些州管理工具,因为它不是最好的工作。
这是Redux中国家管理的一个示例:

// store.js
import { createStore } from 'redux';

const initialState = {
  count: 0
};

const reducer = (state = initialState, action) => {
  switch (action.type) {
    case 'INCREMENT':
      return { ...state, count: state.count + 1 };
    case 'DECREMENT':
      return { ...state, count: state.count - 1 };
    default:
      return state;
  }
};

const store = createStore(reducer);

export default store;

// Component.js
import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { increment, decrement } from './actions'; // Create these actions

const Component = () => {
  const count = useSelector(state => state.count);
  const dispatch = useDispatch();

  return (
    <div>
      <button onClick={() => dispatch(increment())}>+</button>
      {count}
      <button onClick={() => dispatch(decrement())}>-</button>
    </div>
  );
};

export default Component;

使用Svelte Store:
在Svelte中相当于

// store.js
import { writable } from 'svelte/store';

export const count = writable(0);

// component.svelte
<script>
import {count} from 'store.js'
const increment = () =>{
count.update((n) => n + 1);

const decrement = () =>{
count.update((n) => n - 1);
}

</script>

<button on:click={increment}>
    +
</button>
{$count}
<button on:click={decrement}>
    -
</button>

组件样板

React组件有时可能需要大量的样板代码,尤其是在处理状态管理,道具和生命周期方法时。 Svelte的简化语法和反应性语句可以大大减少样板的量,从而使代码库清洁且易于维护。现在,您可能会说React是一个更加成熟的框架,Svelte只是利用了创建一个更有效的系统的缺点,但是框架总是可以发展的,也应该预期React。我认为,代码应该是流体的,应该没有太多的样板。

性能优势

React在运行时执行大部分工作,而Svelte的构建过程分析并优化了您的代码,它会生成高效的JavaScript,直接直接操纵DOM。这种简化的方法通常会导致更快的加载时间和提高的运行时性能。
Svelte避免使用虚拟DOM,这是React中的核心概念。虽然虚拟DOM最大程度地减少了直接DOM操纵,但它引入了对帐过程,有时可能会减慢更新。但是,Svelte将组件编译到精益JavaScript代码中。结果,Svelte更新和渲染组件更快,增强了您的应用程序的整体响应能力。

工具集成

工具集成在塑造现代网络框架的发展体验中起着关键作用。 React以其灵活性和广泛的生态系统而闻名,但通常需要大量的配置和设置来发挥其全部潜力(在大多数情况下做简单的事情)。开发人员经常浏览构建工具,换手器和衬里的迷宫,这些工具,跨局部和衬里有时会减慢项目的启动并阻碍快速开发。
相比之下,Svelte有利于那些寻求Swifter项目设置和简化开发工作流的人。 Svelte的负担转移了开发人员的负担,这要归功于其编译时框架生成了优化的JavaScript代码。 Svelte中没有虚拟DOM简化了工具景观,从而导致了较轻的配置过程并减少了认知负载。结果,开发人员可以迅速潜入编码,这不受反应可能需要的工具复杂性的负担。功能和简单位置之间的这种有吸引力的平衡是,对于快速迭代和最小的设置摩擦很重要的项目,这是一种吸引人的替代方案。

是的,这些是我的想法,如果您没有使用Svelte,请在svelte.dev

尝试一下