水木社区手机版
首页
|版面-Web开发(WebDev)|
新版wap站已上线
返回
1/1
|
转到
主题:已经上 es6 了
楼主
|
hgoldfish
|
2016-10-11 20:03:23
|
展开
我现在改用 es6 写 angularjs 了,装上 chrome55,可以不用 babel 就把代码跑起来。待发布的时候再 babel 编译并且打包一下。
用 es6 写脚本有几个地方很好用:
1. 使用 class 定义类型。比如 ngview 的页面我弄了一个 BasePage 类型,这么写很方便:
class ConfigurePage extends BasePage {
constructor(scope) {
super(scope);
this.scope['configure'] = {};
this.scope['save'] = this.save.bind(this);
}
async run() {
var http = this.getTransport();
var response = await http({
"url": "/api/v1/configure/",
});
this.scope['configure'] = response.data;
this.emitDataChanged();
}
async save() {
var http = this.getTransport();
await http({
"url": "/api/v1/configure/",
"data": this.scope["configure"],
"method": "POST",
});
}
}
很多东西都可以写在父类里面公用。
2. 可以用 await,比写回调舒服很多。
3. 指令同样也可以继承于 BaseDirective
--
修改:hgoldfish FROM 211.162.33.*
FROM 120.36.226.*
5楼
|
hgoldfish
|
2016-10-12 10:17:44
|
展开
我用 node_modules/.bin/babel --stage 0 这个命令行编译的。
理论上是 es7 或者叫 es2016。但是 chrome55 只支持 async/await,不支持 decorator 和 static properties,原来我代码里面用了这两个语法,最后还是去掉了。
【 在 XeCycle (据说是小 X) 的大作中提到: 】
: async/await is es7
--
FROM 120.36.226.*
6楼
|
hgoldfish
|
2016-10-12 10:23:16
|
展开
babel 支持,但是 chrome55 不支持。我仍然用的 require.js
【 在 xenapior (4D blocks) 的大作中提到: 】
: 模块化的import和export有没有内置支持?
--
FROM 120.36.226.*
7楼
|
hgoldfish
|
2016-10-12 10:26:11
|
展开
调试的时候用 chrome55 开发版。上线的时候用 babel 转一下。目前还没接到浏览器兼容问题的报告。。我再继续折腾一番。等过段时间再来说说。
【 在 lokta (部落) 的大作中提到: 】
: 弱问跟现有的浏览器兼容性如何?
--
FROM 120.36.226.*
11楼
|
hgoldfish
|
2016-10-13 23:41:32
|
展开
es6 提供了 class,其实算下来已经基本上够用了。更多的语法特性又如何了。
我调试程序的时候很讨厌需要编译的语言,每次修改完内容都要卡顿一下才能刷新页面。用 es6 就没有这个问题,直接浏览器支持,发布的时候再用 babel 编译一次就够了。
【 在 vicsa475 (ozbargin) 的大作中提到: 】
: 既然是用angular,为什么不用typescript呢?你根本不用担心esX, typescript支持最新es+更多features,并且向下兼容
: 大型前端项目用typescript才能更好的控制代码,一点点编译导致的多余代码完全可以接受
--
FROM 125.78.148.*
13楼
|
hgoldfish
|
2016-10-13 23:59:04
|
展开
有测试工程师啊。发布是指到测试环境,等到生产环境是另外的事情了。
【 在 vicsa475 (ozbargin) 的大作中提到: 】
: 不会吧,你不是用最终代码调试的?发布的时候编译一下,然后让谁测试编译后的代码啊,用户吗?
--
FROM 125.78.148.*
16楼
|
hgoldfish
|
2016-10-14 07:51:40
|
展开
babel 转一下就搞定了。转出来的代码一般兼容性比自己写的还好。如果不行,那可以去报 babel 的 bug 了。
我们使用的只是语法,没有用 polyfill 实现的那些新接口,反正目前还没有出现问题,安啦。
【 在 vicsa475 (ozbargin) 的大作中提到: 】
: 就是说dev只管支持最新标准的主流浏览器,不支持es6的浏览器都甩给test engineer测试了?
: 请问贵司在哪里?还招人吗?
--
FROM 27.149.223.*
19楼
|
hgoldfish
|
2016-10-18 21:21:01
|
展开
css 是 css,这个另外说了,已经不是前端程序员的事。不过有点倒是真的,ie8 以下我们都是不支持的——毕竟连 jquery2/alipay 都不支持,我们也没啥好折腾的——而这刚好是 babel 编译的结果能兼容 es5 的最低 ie 版本了吧。
babel 跟 typescript 一样的角色,最终发布的都是编译后的代码。我感觉你是觉得编译后的代码没有在调试阶段使用过所以不可靠?
【 在 vicsa475 (ozbargin) 的大作中提到: 】
: 标 题: Re: 已经上 es6 了
: 发信站: 水木社区 (Tue Oct 18 20:17:52 2016), 站内
:
: css支持都不一样,es5和es6的浏览器,我不明白怎么可以不测试
: babel vs typescript看这个
:
https://www.quora.com/Should-I-go-with-Babel-or-TypeScript-for-writing-web-apps
:
https://medium.com/@basarat/typescript-won-a4e0dfde4b08#.3bhmubmkj
:
: 你说的这个不是理由,我typescript转出来的也可以说兼容性非常好
: 【 在 hgoldfish 的大作中提到: 】
: : babel 转一下就搞定了。转出来的代码一般兼容性比自己写的还好。如果不行,那可以去报 babel 的 bug 了。
: : 我们使用的只是语法,没有用 polyfill 实现的那些新接口,反正目前还没有出现问题,安啦。
: :
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net
·[FROM: 115.70.49.*]
--
FROM 211.162.33.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版