想直接在浏览器写 ES6 语法,那么怎么解决低版本浏览器的兼容性问题呢?

2019-06-01 22:14:38 +08:00
 find456789

最近我打算弄一个网站

打算 使用 react+es6 来写

我是把 react 当成 jQuery 方式来用

也就是 standalone 方式来使用 react


高版本的浏览器 是可以支持 es6, 低版本有办法解决吗?

有没有办法, 用一个 js 判断 浏览器是否支持 es6, 如果不支持,就加载一个文件,让浏览器支持 es6

如果浏览器支持 es6, 就不额外加载文件

这样既能恶心低版本的浏览器, 又能让高版本浏览器 用的舒服

谢谢

4362 次点击
所在节点    问与答
11 条回复
greatbody
2019-06-01 22:24:30 +08:00
直接提示只兼容 chrome
greatbody
2019-06-01 22:24:42 +08:00
IE 的直接对不起,不支持。。。
find456789
2019-06-01 22:26:46 +08:00
@greatbody 谢谢,你说的对
Raincal
2019-06-01 22:30:20 +08:00
<script nomodule src="…">
yixiang
2019-06-01 22:30:40 +08:00
不用 babel 的话,也没有 jsx,写着会很痛苦。

要用 babel 的话,转成 es5 也没啥吧。
IsaacYoung
2019-06-01 22:30:46 +08:00
babal 我记得可以直接引个脚本 就是性能不太好
cnfczn
2019-06-01 22:31:44 +08:00
webpack+babel,祝你好运。我也刚接触这俩,主要用 babel 转译各种 es6 语法,webpack 负责打包。
lzxgh621
2019-06-01 22:37:44 +08:00
非商业项目的话
win10、IE11 访问的让他用 EDGE
win10 其它浏览器的让他升级
win10 以下让他换浏览器
1OF7G
2019-06-01 22:55:44 +08:00
babel-standalone: https://github.com/babel/babel-standalone

直接在浏览器里编译,React 也顺便可以用 jsx 了。完全不需要提前编译,缺点就是加载时慢一点。

```html

<div id="output"></div>
<!-- Load Babel -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<!-- Your custom script here -->
<script type="text/babel">
const getMessage = () => "Hello World";
document.getElementById('output').innerHTML = getMessage();
</script>

```

至于低版本才编译,那你可以判断下,然后手动调 babel 的 transform api

话说,webpack 简单配置一下,用起来也不麻烦。
tcdw
2019-06-01 23:07:38 +08:00
try {
new Function('const a = 4'); // 你想要测试的语法
es6Code();
} catch (e) {
es5Code();
}
SoloCompany
2019-06-03 23:03:30 +08:00
一般而言,只要测试几个 ES6 新增的 internal api 是否存在即可
比如 Object.entries

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/569850

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX