前端组件化开发已经是一个老生常谈的话题了,组件化让我们的开发效率以及维护成本带来了质的提升。
当然因为现在的系统越来越复杂庞大,所以开发与维护成本就变得必须要考虑的问题,因此滋生出了目前的三大前端框架 Vue、Angular、React。
那今天我们就来看看 Vue 中有哪些定义组件模版的方式以及他们之间的一些差别。
字符串形式
Vue 最简单直接的一种定义组件模版的方式,但是方式写起来很不友好,就像我们以前拼接 HTML 元素是一样的,很痛苦,所以我们并不常用
Vue.component("my-button", { data: function () { return { label: "是兄弟就来砍我" } }, template: "" });
模版字面量
模版字面量 ES6 语法,与字符串不同的是,我们可以进行多行书写,相对单纯字符串有很大优势,体验更优,但是可能浏览器兼容性会存在问题,需要进行转译为 ES5 语法。
Vue.component("my-content", { data: function () { return { label: "是兄弟就来砍我", content: "刀刀暴击" } }, template: `{{ content }}` });
内联模版(inline-template)
与 「X-template」模版定义方式被称为模版定义的替代品,把内容定义在组件标签元素的内部,而不是作为 slot 内容分发,方式比较灵活,但是给让我们组件的模版与其他属性分离开。
{{label}} Vue.component('my-label', { data: function () { return { label: "赶紧上车吧,兄die" } } })
X-template
定义一个
Vue.component('my-label', {
template: "#label-template",
data: function () {
return {
label: "赶紧上车吧,兄die"
}
}
})