为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

FFIVE 2019-03-02 07:03:26
Vue.js为什么不支持templateUrl模式
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

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

原因

templateUrl使用ajax的方式在运行时加载template,大型应用中数量庞大的组件,以及浏览器对请求数量的限制,将导致严重的app加载性能问题。
以组件为APP的基础单元来开发,而不是template

推荐单文件的组件开发

vue中综合了react(单文件html字符串拼到死),和angularjs(大量ajax获取template),提出my_component.vue的单文件组件开发,将template,style和js集中在一个文件中,利用webpack来构建。目前sublime text已有vue文件的语法高亮插件,同时vue-cli也很给力,分分钟搭建好基础结构。这都不是什么事儿了。

打死不用构建工具/webpack

我们也还是有选择的,虽然官方不推荐,但是也总不能把你打死啊

默默拼串

Vue.component('todo-item',{
props: ['title'],
template: '\
<li>\
{{ title }}\
<button v-on:click="$emit(\'remove\')">X</button>\
</li>\
',
});

使用<script type="x/template">

<script type="text/template" id="tpl">
<div>
<p>hello vue</p>
</div>
</script>

var MyComponent = Vue.extend({
template: '#tpl'
});

最佳实践

使用.vue单文件开发组件,使用webpack构建



查看完整回答
反对 回复 2019-03-10
?
慕村9548890

TA贡献1884条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-10
  • 2 回答
  • 0 关注
  • 603 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信