为什么我不应该将CDN用于Reaction&Babel?

人气:145 发布:2022-10-16 标签: cdn reactjs babeljs

问题描述

当我学习jQuery&;Bootstrap时,我们(学习Web框架的新手伙伴)被告知CDN有很多好处等等。

现在我正在涉猎Reaction/Babel,我们被告知应该从主机服务器下载这些文件,并将其全部准备就绪。但是我们仍然可以使用CDN,但只能用于原型开发,不建议用于生产。

我以为使用CDN的目的是为了省钱、节省带宽等

我引用的是这些语句:

巴别塔:Compiling in the browser has a fairly limited use case, so if you are working on a production site you should be precompiling your scripts server-side

Reaction:"The versions above are only meant for development, and are not suitable for production. Minified and optimized production versions of React are available."(页面底部)

class Button1 extends React.Component {
    constructor(props) {
        super(props);
        this.but = null;
    }
    render() {
        let c = 'mdc-button mdc-button--raised mdc-button--primary mdc-ripple-upgraded';
        let l = e('label', {}, this.props.label);
        let i = iconToggle(this.props.icon);
        this.but = e('button', {className: c, onClick: () => {toggleLights()}}, l, i);
        return e('div', {className: 'myCenter'}, this.but);
    }
}

推荐答案

编辑:

您正在使用React without JSX。

在没有JSX的情况下进行反应

JSX不是使用REACT的必要条件。使用 不带JSX的Reaction在您不想设置的情况下特别方便 在您的生成环境中向上编译。

因为您不需要在计算机中编译程序,所以可以毫无问题地包含react.min.js

Babel用于将JSX转换(编译)为不建议使用的JavaScript 在浏览器中执行此操作,如下所述。

Web上的大多数教程都是关于使用JSX的,因为这是使用Reaction的优势之一。JSX是一种语法糖。您可以使用JSX编写更少的代码。

尝试online Babel compiler查看JSX如何转换为JavaScript,以及生成了多少代码。

所以,如果您使用的是React without JSX,那么使用CDN获取React库比托管在您的服务器上要快。它的工作方式与jQuery和Bootstrap相同。您不需要包括巴别塔,因为您没有使用JSX。

您不应该使用CDN的原因与您提供的Facebook页面相同。

如果您更喜欢使用自己的文本编辑器,也可以下载 HTML文件,对其进行编辑,然后从 浏览器。它执行缓慢的运行时代码转换,所以不要使用它 正在生产中。

说清楚,

使用CDN:

正如Facebook所说,它在浏览器中进行缓慢的运行时代码转换。

这就是说,您的代码不会立即执行。

首先,您的代码应该转换为JavaScript,以便浏览器可以执行它,因为不支持JSX。

转换为JavaScript后,浏览器将执行它。

客户端浏览器:

JSX -> JavaScript -> Execute

使用编译(生产版):

将JSX编译为JavaScript时,通过避免客户端浏览器中的运行时代码转换,可以节省大量时间。

通常编译会执行代码优化并生成最终结果代码。

然后您可以缩小它以将长变量替换为短变量名、删除注释、删除多余的空行等以减小大小。然后,文件被gzip压缩并传输到客户端的浏览器。此阶段(minify和gzip)减小大小并节省带宽,并增加网页渲染时间。

在您的计算机上:

JSX -> JavaScript -> minified JavaScript

客户端浏览器:

JavaScript -> Execute

在编程中,最耗费资源的工作是编译代码。(执行取决于代码/逻辑)

因此,您正在执行计算机中最耗费资源的任务,并发送简单的JavaScript来执行,这减少了浏览器要完成的工作,从而加快了网页加载速度,减少了客户端浏览器上的CPU工作(某些用户可能正在使用速度较慢的计算机,而您的网页可能会因为使用太多资源而挂起他们的计算机)。

860