Day: July 15, 2014

  • Dart 1.5.3的一些变化

    Ashampoo_Snap_2014.07.15_22h13m10s_003_

    Dart是一个发展非常快速的语言。如今最新的版本是1.5.3。自从今年1月份我写了两篇关于Dart的文章( )以来,Dart语言本身,尤其是我用到的Polymer部分,有了很大的变化。

    为了准备8月9日(暂定)于苏州举行的,由G4P.ccGDG 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.jsdart_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]