【译】为什么Vue.js不支持templateURL?

对于Vue新手,尤其是之前用过Angular的人来说,有一个非常普遍的问题:“我可以使用templateURL吗?”我(尤大)已经回答过很多次这个问题,发现最好写点东西来解释一下。
在Angular中,templateURL或者ng-include允许开发者在运行时动态地加载远程的模板文件。作为一个内建的特点,这点看起来很方便。但是让我们重新思考一下它解决了什么问题。
  首先,templateURL允许我们在一个分离的HTML文件中写模板。可以让编辑器提供合适的语法高亮,这可能也是许多框架偏爱于这样做的原因吧。但是,分离模板和JavaScript代码真是的最好的方式吗?对于一个Vue组件,template和JavaScript被原生的紧密连在一起。事实上,如果这些东西仅仅在一个文件里会简单得多。上下文的来回跳转事实上会让开发体验变得更加糟糕。从概念上来说,组件是一个Vue应用的基本构建块,而template不是。每一个Vue.js template和一个伴随着的JavaScript上下文紧密连在一起,没有理由去进一步分离他们。
  其次,由于templateURL通过Ajax在运行时加载模板,你不需要为了分离你的文件而增加一个构建的环节。这为开发提供了便利,但是当你想部署项目到生产环境的时候,这种方式带来了严重的开销。在HTTP/2被普遍支持之前,HTTP请求的数量依然是影响你的应用初次加载时性能的关键因素。现在想象你在应用中每一个组件中使用templateURL,浏览器需要在能展示页面之前做大量的HTTP请求,可能你不知道的是,大多数浏览器限制了它对于单个服务器的并行请求的数量。当你超过了这个限制,应用的初次渲染会承受额外的周转时间,因为浏览器要等待请求的加载。当然,现在也有构建工具,能够帮助你在$templateCache中预注册(pre-register)这些模板。但是,这事实上,不可避免的给前端开发增加了一个构建环节。
  所以,没有templateURL,我们如何处理开发体验的问题?把模板作为行内JavaScript字符串来写是很糟糕的,以<script type="x/template">的方式来编写模板感觉像是一个hack。好吧,可能是时候去使用一个像 Webpack或者Browserify之类的模板加载器让程序跑起来。你如果之前没处理过这些问题的话可能会被吓到,但是相信我,做出这种改变是值得的。如果你想要去构建一个大型的可维护的项目时,合适的模块化是必不可少的。更重要的是,当你开始在单个文件中写Vue组件时,使用合适的语法高亮,享受着预加载器、热加载(hot-reloading),ES2015带来的开发上的快感,以及自动补全和scoped css。这些会将开发体验提升10倍。
  最后,Vue也允许懒加载组件。使用webpack的话,这将变得极其简单。尽管这有一个唯一值得担心的问题是,当初始模块太大时,你最好将它进一步分离。
  以组件的方式去思考,而不是模板。


作者:尤雨溪
原文地址:http://cn.vuejs.org/2015/10/28/why-no-template-url/
译者:熊贤仁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容

  • 转载 :OpenDiggawesome-github-vue 是由OpenDigg整理并维护的Vue相关开源项目库...
    果汁密码阅读 23,109评论 8 124
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,047评论 0 29
  • 前言: - - - - -地图功能做的总感觉有点小问题以修正,有时间在上 使用高德SDK需要配置开发环境,官网介绍...
    catcherdream阅读 15,183评论 35 26
  • 今天第一天骑车去上班 学了两天还不太熟练 昨晚睡觉前还打算再缓几天 一觉醒来 脑子里就是想骑车去上班 一路上没有太...
    乐天夏木阅读 194评论 1 1
  • 我想 有一间温暖的奶茶店 就在青岛市靠海的巷子里 名字就叫 月圆之夜 屋内一定要装有北欧风格的吊灯 暖黄色的灯光下...
    叶九儿阅读 189评论 0 0