Dart是一个发展非常快速的语言。如今最新的版本是1.5.3。自从今年1月份我写了两篇关于Dart的文章(一,二)以来,Dart语言本身,尤其是我用到的Polymer部分,有了很大的变化。
为了准备8月9日(暂定)于苏州举行的,由G4P.cc和GDG Suzhou联合举办的活动,我对之前编写的Dart小程序进行了调试。本文就在这次调试中发现的变化进行一些总结。
一个Dart/Polymer程序的架构没有变化,还是由三部分组成:
- 入口程序,比如
getqotd.html。这个文件提供了页面的布局和对Polymer元素的调用。 - Polymer元素模板,比如
qotd.html。这个文件定义了一个Polymer元素的布局和一些基本设置。 - Polymer元素的代码,比如
qotd.dart。这个文件也是该Polymer元素的驱动代码部分,也可以是我们编写的一个Polymer/Dart程序的核心。
入口程序
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width, initial-scale=1.0>
<title>QOTD Sampe App</title>
<script src=packages/web_components/platform.js></script>
<script src=packages/web_components/dart_support.js></script>
<!-- import the qotd -->
<link rel=import href=qotd.html>
<script type=application/dart>export 'package:polymer/init.dart';</script>
<script src=packages/browser/dart.js></script>
<link rel=stylesheet href=css/bootstrap.min.css>
</head>
这是一个标准的入口程序的HTML头部分。与之前相比,该部分加入了移动设备的支持。
另外,所引用的JS文件也改为platform.js和dart_support.js。而原来的:<script type=application/dart>export 'package:polymer/init.dart';</script><script src=packages/browser/dart.js></script>已经被弃用。我个人对这个改变比较欢迎。毕竟原来的语句很不像HTML。
模板
重要的改变有两个。
一个是在原先的<polymer-element>定义之前必须再加一个<link rel=import href=packages/polymer/polymer.html>语句。
第二,鉴于Dart已经重新对shadow DOM进行了更好的支持,于是可以在<template>中直接加入对CSS的引用,如:<link type=text/css rel=stylesheet href=css/bootstrap.min.css>这样。
代码
鉴于上述的第二点,代码中原先需要的对shadowDOM进行applyAuthorStyles的操作就不再必要。事实上,如果你写了,Dart编译器会给出deprecated的警告。
基本上我发现的改动就是这些。当然,改动肯定不止这些。我在O\’Reilly买了一本Dart: Up and Running的书,电子版已经更新并专列了一章介绍新的变换。我印象比较深的是Reflection的引入。
本文收录于[go4pro.org]
Leave a Reply