问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Vue.js为什么不支持templateUrl模式

发布网友 发布时间:2022-04-20 19:17

我来回答

1个回答

热心网友 时间:2022-03-30 08:38

Angular的世界里,templateURL 或者 ng-include 允许使用者在运行时动态的加载远程模板文件,这个看起来很方便,作为一个自带功能,但是让我们来重新审视下这个功能。

首先,它允许我们能够编写一个分离的html文件作为模板,这样子我们就能在编辑的时候看到正确的语法高亮,这也是很多开发者喜欢的原因(注:我觉得这是因为现在的人越来越懒,越来越依赖IDE的原因)。但是分离你的js和html代码真的是个好主意么?在Vue.js的组件中,js和html天然紧耦合,事实上,这些代码在一个文件更简单易懂。在2个文件中来回切换上下文逻辑实际上让开发者更不爽。在vue的概念里,组件才是vue.js的基本构建单位,并不是模板文件。每一个vue.js的模板都伴随着他的好基友js,分离他们太过于残忍了。

其次,因为templateURL是在运行时通过ajax的方式加载模板,不需要构建步骤为了你分离的文件。开发的时候,这很爽,但是上线部署的时候,你就麻烦了。在HTTP2.0没有大面积支持前,HTTP的请求数仍然是页面加载的最关键因素。想象一下,在你的网站中,每个组件都是用templateURL,那么页面出来前,你可能需要加载几十个HTTP请求。可能你并不知道,大多数的浏览器是*同一域名的并发请求数量的。当你超过这个限额的时候,你页面的初始渲染时间就得等待每次请求的返回。当然,有工具可以帮助你提前注册你所有的模板,但是这就多了一个构建步骤,事实上,这就是大型网站的必然趋势。

那么,在没有templateURL的情况下,我们怎么处理开发环境问题呢?
在js里面拼接字符串是很烂的做法,使用 <script type="x/template">这种伪模板也不咋样。那么,现在是时候提升技能,使用像Webpack或者Browserify这种流行的模块构建器了。如果以前没有使用过,可能有点望而却步,但是相信我,这会有一个质的飞跃。对于大型网站和系统来说,适当的模块化很必要。更重要的是,你可以编写Vue组件在一个文件中,再加上语法高亮,自定义的预处理器,热加载,ES6,内置css,自动前置。可以让开发者提高10倍效率。

最后,Vue还能懒加载你的组件,加上使用wabpack非常容易,尽管这是为了解决一个问---构建页面文件过于庞大,初始化比较慢,所以你最好还是分割开来比较好。

抛弃template,拥抱组件世界吧!!

以上是原文的翻译,并非完全直译,有很多自己的语言,大概意思相同,原谅我的文采不行。

个人觉得,Vue的组件思想跟React相似,把很多东西放在了js(这里是.vue文件)中,这种做法是把很多紧耦合的东西集中在一起管理,把原来分割开的css,html,js合成在一起,这个很像很多年的做法,所以很同意玉伯说的,看起来前端是在原地打转了一圈,开发模式回到了从前的样子,但是已经螺旋上升了哦,一切都在升级。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
寿司连锁店游戏破解版 韩式寿司店中文版下载(韩式寿司店) 《老爹的寿司店》游戏界面中文设置教程 寿司翻译成中文如何下载 我的寿司店中文版下载如何下载 我的寿司店游戏破解版 怎么取消序时制单用友t3 ...有标题1,2,4,5,6,7,8,9 但是没有标题3,这是怎么回事啊? 快手猪脚姜的做法 精选10道快手菜!每天不重样,天天吃不腻,只需10分钟!值得收藏 vuez怎么删除某个标签上设置的值 冰箱加雪种如何进行(步骤详细点)加注多少?我是... 冰箱要加雪种吗? 抄了一段vue的实例,为什么v-for属性不能用 冰箱里要加雪种吗? 前端都有什么框架 其特点 请问vue的拦截器的方法里面,如何获取某个vue实例... vue怎么触发元素的原生事件 vue利用v-for循环时怎么只处理点击的那个元素 vue中v-model绑定数据,不想让同数据第二个使用数... 子组件 想使用 父组件的 事件 要怎么写 Vue设计时为什么不把Vuex放进去? 在vue里面怎么根据接口返回的数量动态设置元素的宽 vue 方法里 将一个数组的每个值给到另一个数组的每... vue中绑定事件为什么+=不正常 vue购物车里面的加减按钮滚动后才生效是怎么回事 vue.js input加减怎么实现 如何利用Vue.js库实现两个数据进行加法运算 酒酿圆子可以放苹果,香蕉桔子吗? 做好的糯米甜酒怎么存放 冰柜加雪种多少钱 加雪种的方法是怎么样的 冰箱不够冷,加雪种是否有效 冰箱多加雪种影响制冷效果吗 新的冰箱多长时间加雪种 我们家的海尔冰箱买了几年了!要不要加雪种 电冰箱是否也要加雪种? 冰箱加雪种多少压力? 冰箱要多久才加雪种才合适 冰箱要多久才能加雪种 威力冰箱不制冷是不是要加雪种 世界上第一大国和第二大国分别是什么? 世界第一大的国家是什么国家? 世界上第一高的山到第三高的山的名称是什么? 电脑中的云技术有那么厉害吗 请问谁能详细讲解一下云电脑技术 什么是云电脑技术? 随着计算机技术的飞速发展,云技术慢慢走向成熟,... 生活中还有哪些事物运用了云技术 电脑云端是什么? 云计算到底是什么意思?有没有通俗点的解释啊 谢谢