字幕组成品列表(Beta)
  • 写在前面
  • Android 平台
    • Game On! 游戏开发系列 - 031
      • Pie Noon - 1503060393
      • The Death of Base Game Activity - 1504030543
      • Surviving OpenGL Context Loss - 1504030546
      • WebP for Game Devs - 1504030547
      • Saved Games In-Depth (Part 1) - 1504070556
      • Saved Games In-Depth (Part 2) - 1504030548
      • Smaller Flipbook Textures with CRABBY - 1504030544
      • Google Tag Manager - 1504030545
      • Flatbuffers - 1505050794
      • Achievement Point Pointers - 1505050796
      • Frequency Scaling - 1505050797
      • Meet the Management APIs - 1501140367
      • Y U Ship Broken Games - 1505050795
    • Android 性能优化 - 088
      • Garbage Collection in Android - 1503170425
      • Performance Cost of Memory Leaks - 1503170424
      • Rendering Performance 101 - 1501130351
      • Understanding Overdraw - 1501130352
      • Understanding VSYNC - 1501130353
      • Tool - Profile GPU Rendering - 1501130354
      • Why 60fps? - 1501130355
      • Android UI and the GPU - 1501130356
      • Invalidations, Layouts, and Performance - 1501130357
      • Overdraw, Cliprect, QuickReject - 1501130358
      • Tool - Memory Monitor - 1501130363
      • Battery Performance 101 - 1501130364
      • Understanding Battery Drain on Android - 1501130365
      • Battery Drain and WakeLocks - 1501130366
      • Memory Performance 101 - 1504170661
    • I/O 2014 Android 开发专题 - 089
      • Activity Transitions - 1504020505
      • Building Apps For Android TV - 1504020520
      • Building great Android media experiences - 1504020510
      • Building a quality app from start to finish - 1504020515
      • App Indexing API - 1504020507
      • What's new in WebView - 1504010484
      • Bluetooth Low Energy - 1504010486
      • Building impressive Android media experiences - 1504010493
      • The next Generation of Authentication - 1504020497
      • Don't Alpha That Pixel! - 1504020523
      • NFC + HCE Your phone in an interactive world - 1504020509
      • Demystifying encodes and decodes of WebM - 1504020521
      • Google Cloud Messaging - 1504020524
      • Getting your Game on the Big Screen - 1504020518
      • I hear you like realtime memes - 1504020511
      • Offerize your App - 1504020506
      • Using the Android Job Scheduler - 1504020504
      • From Holo to Material - 1504020526
      • Under the Hood of Android Auto - 1504020501
      • Isolation for Android App Developers - 1504020498
      • Android Work - 1504010496
      • ExoPlayer: Adaptive video streaming on Android - 1504010489
      • Sample rates and resampling: Why can't we all just agree? - 1504010488
      • Drive Android API - 1504010485
    • Android Studio - 004
      • Layout Editor (Ep 3, Android Studio) - 1503290479
      • Introducing Gradle (Ep 2, Android Studio) - 1503170426
    • I/O 2014 Android 分发主题 - 091
      • Introduction to Google Play - 1504030534
      • Google Play: building your user community - 1504030535
      • Optimizing Apps for Education - 1504030536
      • Succeeding in Education Technology - 1504030530
      • Subscriptions Made Easy with Google Play - 1504030531
      • The world is your playground - go global with Google - 1504030533
      • Maximizing discoverability on Google Play - 1504030538
    • Android Auto - 003
      • Introduction to Android Auto - 1504130615
      • Android Auto Messaging - 1504130617
      • Android Auto Audio - 1504130616
    • Android Wear - 006
      • Designing for Android Wear - 1503210448
      • How We Customized Google Apps for Android Wear - 1503210450
      • Fullscreen apps for Android Wear - 1503210445
      • New Notification Features for Android Wear - 1503210446
      • Building Cloud-powered wearable Apps - 1503210449
      • An Introduction to Android Wear - 1503190435
      • Google I/O 2014 - Android Wear: The developer's perspective - 1503210442
      • Devoxx 2014 Interviews: Android Wear - 1503210440
      • DevBytes: Watch Faces for Android Wear - 1503210439
    • Android TV - 005
      • Using the Leanback library - 1504080588
      • Beach Buggy Racing Multiplayer with Nearby Connections (Play Services) - 1503060387
    • Android for Work - 106
      • Android for Work for Developers - 1503060390
      • App Configurations, Testing and Launchers - 1504110590
    • IO Bytes 2014 - Android - 066
      • Chrome Apps on Android and iOS - 1501080014
      • Perf Primer CPU, GPU and your Android game - 1501080017
  • Chrome 平台
    • IO Bytes 2014 - Chrome and Web - 067
      • Using the PageSpeed API - 1505070815
      • Fabulous Forms for the multi-device web - 1505070816
      • Testing multi-screen web pages - 1505070817
      • Responsive images today - 1505070819
      • Web Performance Testing at YouTube - 1505070828
      • Building sites for the multi-device web - 1505070820
      • Deep dive: Google Cloud Messaging for Chrome - 1505070827
  • Google 创业者资源
    • Coffee with a Googler - 012
      • Chat with Allen Huang of AndroidTV - 1503040384
      • Chat with Fred Chung about developer advocacy - 1503070395
      • Google Fit platform with Michelle Haq - 1503210443
      • Android Auto Product Manager Andrew Brenner - 1501120027
      • Chat with Francis Ma about Google Play services - 1501120028
    • Root Access For Startups - 077
      • What we learned building plug-ins for Android, with startup Magnet - 1503230453
      • How to use crowdfunding to your advantage, with startup Hale Devices - 1503280462
      • How to overcome customer objections when selling tech, with startup Guesswork - 1503280458
    • First Things First - 029
      • Getting started with Android: A crash-course in developing for Android - 1504120601
      • How to ask a question: conducting research for your startup - 1504120603
      • MVP Design Hacks: transform your hot idea into a validated prototype - 1504120602
      • Build something people want: Solving real problems - 1504120605
    • How I - 061
      • Use BigQuery to find my most valuable customers - 1504070573
      • Manage beta testing communities using Google Play - 1504070572
      • Use paper wireframing to build native prototypes - 1504070570
      • Used social media and $0 marketing to get 68 million users - 1504070568
      • Prep to fundraise with four questions - 1504070564
      • Validated my idea in 2 days (with no code) - 1504070562
      • Build open platforms on Android - 1504120596
      • Get cheap, automatic analytics for my business using BigQuery - 1504070571
      • Write press releases to get international media coverage - 1504070569
      • Test beta-product features using Google Apps - 1504070563
      • Use URL builder to measure ROI on social media - 1504070561
      • Use events to build DeadSocial's brand - 1504070557
      • Use BigQuery to visualize streaming data - 1503220452
      • Find, screen, and hire developers - 1503120406
      • Drive engagement with social challenges - 1504070558
  • 设计
    • DesignBytes - 017
      • Paper and Ink: The Materials that Matter - 1505050793
  • 云计算
    • DevBytes: Google Cloud Platform - 021
      • Powering the next killer app with the Google Cloud Platform - 1504210672
      • Introduction to Google Cloud Endpoints - 1504210675
      • The Beauty of Scale with Google Cloud Platform - 1504210678
    • Google Cloud Platform - Big Data - 105
      • GDELT & BigQuery: Understand the world - 1502200379
    • Uncategorized - 999
      • Introducing Google Cloud Platform Resources - 1501190370
  • Google 应用开发
    • Launchpad Online - 072
      • The Setup: Creating new apps using Google APIs - 1503190428
      • Listing your files in Google Drive - 1503190429
      • Customizing Google Analytics for your startup - 1503290473
      • The Launchpad Online series - 1503190427
      • Getting started with Google Analytics - 1503290472
      • Accessing Google Maps from a spreadsheet?!? - 1502220381
      • Change the world in 10 lines of code - 1503080398
    • Google Play Services - 054
      • Google Play services 6.1 - 1503290481
      • Google Play Services 7.0 - 1503200437
      • Google Play Services 6.5 - 1501080015
    • 谷歌地图 iOS SDK - 053
      • Maps Live: New Features in the Google Maps Mobile APIs for Android and iOS - 1504300777
    • Google 移动搜索开发 - 055
      • Is your app in the Google index? - 1504120598
      • Get more engaged users with Google Search for Developers - 1503070397
    • DevBytes: Google Cast - 020
      • Google Cast SDK for Android - 1504180666
      • Media Router Framework - Part 1 - Media Router API - 1504180667
      • Overview for Google Cast Receivers - 1504180664
      • Google Cast SDK for iOS - 1504180663
    • Getting Started with the Google Maps SDK for iOS - 035
      • Getting started with the Google Maps SDK for iOS, Part 1 - 1504270757
    • IO Bytes 2014 - Wearables - 070
      • Voice Driven GDK Glassware - 1505280836
    • Route 85 - 078
      • Introducing Route 85 - 1501120022
      • Quick Tip: Don't Default that Switch! - 1501190371
      • OpenInChrome on iOS, Part 1 - 1501120023
      • OpenInChrome on iOS, Part 2 - 1501120024
      • OpenInChrome on iOS, Part 3 - 1501120025
      • OpenInChrome on iOS, Part 4 - 1501120026
    • DevBytes 2014 - 019
      • Web Components - Template - 1505040789
      • Wearable DataLayer API - 1505050792
      • Using srcset for responsive images - 1505050790
      • The picture element for art direction - 1505050791
    • Uncategorized - 999
      • Sun Surveyor brings augmented reality to photographers using Google Maps APIs - 1504200668
      • Snappy travels with the Roads API - 1503060392
      • Easy Maps Apps in Java and Python - 1501140030
  • Google 广告平台
  • Polymer
    • Polycasts - 076
      • The Awesome Power of Auto-Binding Templates -- Polycasts #08 - 1502220382
      • Content Switcheroo with Core-Pages -- Polycasts #09 - 1502200380
      • Core Iconset -- Polycasts #02 - 1505040788
  • Web 平台
    • HTTP 203 - 062
      • Gotchas - 1501140368
      • Font Rendering - 1501080016
    • Web Components - 081
      • DevBytes: Web Components - Overview - 1504250709
  • 宣传视频
    • Uncategorized - 999
      • Google Developers - 1501150369
      • I/O Extended 2014 - Join me - 1502220383
  • Google 各类开发者会议
    • 2014 Chrome 开发者高峰会议 - 009
      • Keynote - Chrome Dev Summit 2014 (Darin Fisher) - 1503120407
      • TLS All the Things! - Security with Performance(Chris Palmer) - 1503140412
      • Let’s build some apps with Polymer!(Rob Dodson) - 1503150415
      • Day One Closing Remarks(Sundar Pichai) - 1503150417
      • Chrome Leadership panel - 1503160422
      • Fundamentals of Mobile Web Development(Matt Gaunt) - 1503150416
    • 2015 游戏开发者大会中 - 039
      • FlatBuffers - 1504150640
      • Games for Google Cast - 1504150637
      • Top 10 Things Android Game Developers Should Know v 3.0 - 1504150643
      • Automate Publishing for Google Play APIs - 1504150639
      • 3 Game Design Mistakes You're Making - 1504150636
      • Android TV - 1504150638
      • How to Go Viral Without Really Trying - 1504150641
    • Devoxx 2014 Interviews - 024
      • What's new in Android 5.0 Lollipop - 1504260740
      • Android Tools - 1504260743
      • BigQuery and user-defined functions - 1504260744
    • IO Bytes 2014 - 065
      • Dart in Google Cloud - 1505070810
      • Big genomic data on Google Cloud Platform - 1505070811
      • Easy International Checkout with Chrome - 1505070802
      • Google developer tools and APIs for iOS - 1503190436
      • Whet your appetite with IO Bytes - 1501080021
    • PlayTime@Shanghai - 095
      • 主题演讲 Chris Yerga - 1504060549
      • 如何成功地开发你的应用 Ellie Powers - 1504060550
      • 在Google上营利 Brahim Elbouchikhi - 1504060551
      • Playtime Shanghai event sizzle reel - 1504070552
    • Project Google I/O 2015 - 098
      • Project Tango Mobile 3D tracking and perception - 1506120857
      • Democratizing Education - 1506120868
      • Improve your Android app’s accessibility - 1506120864
      • Google Cloud Messaging 3.0 - 1506120844
      • Developers connecting the world through Google Play - 1506120862
  • 开源开放技术
    • Compressor Head - 013
      • The Trailer, Season 2 - 1503060385
      • Behind the Scenes - 1503210441
      • Arithmetic Compression (Ep 5, Compressor Head) Google - 1503070394
      • Introducing Compressor Head - 1502120372
      • Episode 1 (Variable Length Codes) - 1502120373
      • Episode 2 (The LZ77 Compression Family) - 1502120374
      • Episode 3 (Markov Chain Compression) - 1502120375
Powered by GitBook
On this page
  • 译者信息
  • 解说词中文版:

Was this helpful?

  1. Web 平台
  2. Web Components - 081

DevBytes: Web Components - Overview - 1504250709

PreviousWeb Components - 081Next宣传视频

Last updated 5 years ago

Was this helpful?

视频发布时间

2014年6月25日

视频介绍

Web Components are a set of technologies that changes the way you develop web apps entirely. By making components scoped and reusable in standardized way, your web development will step up to the next level.This video explains the benefit of using Web Components, how to use them, and what each technologies are like.

视频推介语

暂无,待补充。

译者信息

翻译

润稿

终审

原始链接

中文字幕

翻译流水号

加入字幕组

黄玄

任皓

——

1504250709

解说词中文版:

嗨

我叫英二 是一名来自 Google 的开发者布道师

今天 我将和大家笼统的介绍一下Web Components

Web Components 是一套新兴的规范

它可以完全改变你开发网页应用的方式

这套规范允许你在开发网页应用时创建和复用 UI 组件

这套规范允许你在开发网页应用时创建和复用 UI 组件

让我们来看看在今天你要如何去创建一个 UI 元素

同时了解使用 Web Components 能如何改善这个过程

这里有一张很好看的图表

你会如何使用 HTML CSS 和 JavaScript 来创建它呢

如何你从零开始 那么工作量很大

为了帮助我们做这个图表,我们可以使用 Google Visualization API(可视化)

首先 载入 Google JavaScript 库以使用这些API

然后 添加 div 标签到 body 中作为占位符

现在 使用 JavaScript语句 通过加载 Visualization API 来初始化类库

现在 使用 JavaScript语句 通过加载 Visualization API 来初始化类库

接着,在回调函数中设置值和一些可选项

最后,指定用来放置图表的 DOM(文档对象模型)元素

现在,让我们进入 Web Components 的方式

看看它如何剧烈的改变了我们创建一个图表的方式

看看它如何剧烈的改变了我们创建一个图表的方式

使用 Web Components,你需要做的第一件事

就是载入 Google Chart Component(图表组件)

为了使不支持的浏览器也能正常表现

你还需要加载一个开源的polyfill(提供兼容性的代码) platform.js

然后添加一个 Google Chart 标签并且把你想要的属性填进去

就搞定了

注意到两种方式的区别了吗

是的

第一种是使用 JavaScript 的指令

而第二种则是使用 HTML 标签的声明

声明方式可能看上去更容易处理一些

但最大的不同并不在难易

而是当使用那些 API 时,开发者需要很多潜在的知识

而是当使用那些 API 时,开发者需要很多潜在的知识

在最初的那个例子中 你首先需要理解 Google JavaScript 库是如何工作的

在最初的那个例子中 你首先需要理解 Google JavaScript 库是如何工作的

然后你才可以学习如何运用 API 来控制它

相反 Web Components 使用 DOM API

这是大多数 Web 开发者都非常熟悉的

这是大多数 Web 开发者都非常熟悉的

这样你就可以直接从学习如何使用属性和 API开始

这个差异看上去很微妙 但是当你使用其他 UI 类库时 你就会发现它的好处

这个差异看上去很微妙 但是当你使用其他 UI 类库时 你就会发现它的好处

比如 jQuery UI Bootstrap Closure Libraries 等等

它们全都使用了不同的方式

以至于在实际开始使用之前 你先要学习他们

使用 Web Components 还有诸多其他好处

让我们一个个来看

有作用域

由于 Web Components 的样式和标签是有作用域的

引入的组件并不会损害到你网页的其他部分

现有的库中存在这么一个情况

你用到的类名或ID可能会和库中已有的重叠

你用到的类名或ID可能会和库中已有的重叠

使用Web Components 所有标签和 CSS 的作用范围仅限于该元素内部

这意味着 CSS 被捆绑在了组件上

而不会泄漏出去影响到父document

这同样防止了父document的样式意外影响组件

这同样防止了父级元素的样式意外影响组件

复用性

因为 Web Components 是有作用域

并且与网页其他部分解耦的

你可以在网页的不同部分甚至另一个站点使用相同的组件

你可以在网页的不同部分甚至另一个站点使用相同的组件

不仅如此 你还可以与社区开源分享你的元素

不仅如此 你还可以与社区开源分享你的元素

使得任何人都可以从你的工作中获益

分离性

因为 Web Components 是有作用域的

你可以将 UI 组件的开发从主功能的开发中解耦出来

开发者们因此能够独立地进行 UI 组件的开发工作

而无需担心或者注意网页其他部分的实现细节

而无需担心或者注意网页其他部分的实现细节

可以看到,组件的维护因为分离也变得更加容易了

可以看到,组件的维护因为分离也变得更加容易了

Web Components 听上去是服务或使用 UI 组件的绝佳解决方案

Web Components 听上去是服务或使用 UI 组件的绝佳解决方案

那么我们实际中要如何创建我们自己的组件呢

Web Components 由四个核心技术组成:

templates Shadow DOM Custom Elements 与 HTML Imports

让我简短地介绍一下它们都是什么样的

Templates(模版)允许你定义惰性的样板文件

用于描述你在 HTML 中重复使用的标签

因为模版中的内容是惰性的

直到它们被送入页面里

它们并不会请求图像或者执行脚本

Shadow DOM (后台DOM)允许你把有作用域范围的 HTML 标签

和 CSS 文件关联到现有的 DOM 元素上

由于 Shadow DOM 是被封装起来的

其样式并不会影响到任何外面的元素

Custom elements(自定义元素)允许你定义并且注册

一个自定义的 HTML 元素就好像它是原生的一样

HTML Imports(导入)允许你加载多个资源

比如 JavaScript, CSS 和附加的 HTML 文件

通过加载一个单独的 HTML 文件来实现

组合所有以上技术就会像这样

首先 准备一个不同于主要 HTML 文件的 HTML 文件

定义并且注册自定义元素

关联 Shadow DOM到上面

使用模版以提供 Shadow 的内容

最后 使用 HTML Imports 导入这个组件 HTML 文件

现在你应该对 Web Components 有了个基本的概念

我将继续发布一系列有关 Web Components 特性的视频

让你可以继续学习如何使用它们

在此期间 列在这里的文档和资源都可以帮助你学习更多

都可以帮助你学习更多有关 Web Components 的知识

所以你可以去看看它们

好啦

感谢您的观看

我们下期再见

Youtube
Youtube
加入 GDG 字幕组
video_screenshot