Vue:字符串模板和dom模板的区别
最近看到vue官方文档的时候,多次提及字符串模板和dom模板,对这个概念比较模糊,经查阅后记录供日后参考。
1.字符串模板
字符串模板就是写在vue中的template中定义的模板,如.vue的单文件组件模板和定义组件时template属性值的模板。字符串模板不会在页面初始化参与页面的渲染,会被vue进行解析编译之后再被浏览器渲染,所以不受限于html结构和标签的命名。
Vue.component('MyComponentA', {template: '<div MyId="123"><MyComponentB>hello, world</MyComponentB></div>'})<div id="app"><MyComponentA></MyComponentA></div>
2.dom模板(或者称为Html模板)
dom模板就是写在html文件中,一打开就会被浏览器进行解析渲染的,所以要遵循html结构和标签的命名,否则浏览器不解析也就不能获取内容了。
下面的例子不会被正确渲染, 会被解析成mycomponent,但是注册的vue的组件是MyComponent,因此无法渲染。
<!DOCTYPE <html><head><meta charset="utf-8"><title>Vue Component</title></head><body><div id="app"> Hello Vue<MyComponent></MyComponent></div><script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script><script >//全局注册Vue.component('MyComponent', {template: '<div>组件类容</div>'});new Vue ({el: '#app'});</script></body>
</html>
所以,下面的例子就可以正常显示了:
<!DOCTYPE <html><head><meta charset="utf-8"><title>Vue Component</title></head><body><div id="app"> Hello Vue<my-component></my-component></div><script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script><script >//全局注册Vue.component('my-component', {template: '<div>组件类容</div>'});new Vue ({el: '#app'});</script></body>
</html>
因为html对大小写不敏感,所以在DOM模板中使用组件必须使用kebab-case命名法(短横线命名)。
因此,对于组件名称的命名,可参考如下实现:
/*-- 在单文件组件、JSX和字符串模板中 --*/<MyComponent/>/*-- 在 DOM 模板中 --*/<my-component></my-component>或者/*-- 在所有地方 --*/<my-component></my-component>
Vue:字符串模板和dom模板的区别相关推荐
- 字符串模板和dom模板的区别
dom模板就是原先就写在页面上的,能被浏览器识别的 html 结构,会在一加载就被浏览器渲染,所以要遵循 html 结构和标签命名,不然是不会被浏览器解析的,也就获取不到内容了,接着js获取 dom ...
- Vue里标签嵌套限制问题解决------解析DOM模板时注意事项:
Vue里标签嵌套限制问题解决------解析DOM模板时注意事项: 参考文章: (1)Vue里标签嵌套限制问题解决------解析DOM模板时注意事项: (2)https://www.cnblogs. ...
- vue的组件和es6模板引擎 组件
今天学习了: 要在父实例中使用这个组件,必须要在实例创建前注册,之后就可以用<组件名></组件名>形式来使用组件了 全局组件注册步骤小结: ①注册组件component并命名 ...
- Vue实例的属性及模板渲染
Vue实例的属性及模板渲染 1 概述 2 el:与DOM元素绑定 3 data:定义双向绑定的数据 4 computed:计算属性 5 methods:定义Vue实例的方法 6 Vue中的三种模板 6 ...
- ie模版字符串_字符串(String)模板引擎被视为是有害的
用模板和一些数据来生成HTML不是一项特别繁重的任务.那些你必须要为HTML做的事才是效率低下的部分. 假如你有一个代表改变数据的UI: Current score: {{currentScore}} ...
- 学习Vue的mustache语法-mustache模板引擎
学习地址 : https://www.bilibili.com/video/BV1EV411h79m?vd_source=a81826692f4afea80764f4048dc1ae0a 代码地址 : ...
- Vue源码之mustache模板引擎(二) 手写实现mustache
Vue源码之mustache模板引擎(二) 手写实现mustache mustache.js 个人练习结果仓库(持续更新):Vue源码解析 webpack配置 可以参考之前的笔记Webpack笔记 安 ...
- Vue源码之mustache模板引擎(一)
Vue源码之mustache模板引擎(一) 个人练习结果仓库(持续更新):Vue源码解析 抽空把之前学的东西写成笔记. 学习视频链接:[尚硅谷]Vue源码解析之mustache模板引擎 模板引擎是什么 ...
- html模板引擎 字符串长度,Web前端模板引擎の字符串模板
这是一个系列文章,将会介绍目前Web前端领域里用到的三种模板引擎技术,它们分别是: 基于字符串的模板 基于Dom操作的模板 基于虚拟Dom的模板 本文是这个系列的第一篇,着重介绍基于字符串的模板引擎的 ...
最新文章
- 2020大部分知名公司Java面试题答案(一)
- Socket 共用一个port的问题
- 【 FPGA 】序列检测器的Mealy状态机实现
- 【java开发系列】—— JDK安装
- 方差过滤: Removing features with low variance
- JAVA中线程同步的方法(7种)汇总
- k8s停止服务_Kubernetes 服务部署最佳实践(二) 如何提高服务可用性
- Mysql远程连接报错2003 Cant connect toMySQL server on your address解决方案
- 私塾在线java设计模式综合项目实战
- MSC.MD.NASTRAN.V2010\
- 遗传算法求解函数最大值的python实现
- Android学习日记(yzy):Fragment与VierPager简单实现
- Mask RCNN 实战(二)--像黑镜一样屏蔽图片和视频中的人和物体
- 第5节 服务器系统简介及用户和组管理
- matlab如何将二进制转换为十进制,matlab – 如何在不使用循环的情况下将二进制转换为十进制?...
- powerdns 系列之二 PowerDNS Authoritative Server
- 不能有比这个再靠谱的星座分析了
- 获诱人的实习 offer 、在 Kaggle 推 AI大 赛,大二学生如何做到?
- python实现树莓派开机自动发送IP到指定邮箱
- 订单管理系统 订货系统平台建设三阶段分享
热门文章
- 重庆初中毕业现在通过什么途径可以提高学历?
- 南京工业大学python期末考试_Python语言程序设计(杨晓秋)_章节测验,期末考试,慕课答案查询公众号...
- OneIndex:基于onedrive的公共网盘搭建——使用宝塔面板(OneIndex合集2)
- Leetcode139.单词拆分
- 看各路单词APP不顺手?索性自己写一个背单词系统
- TPA6120A2DWPR IC AMP AUDIO .08W HIFI 20SOPWR
- 股票量化分析工具QTYX使用攻略——页面控件功能导览v2.5.1
- SQL主键不能为NULL,消除重复数据问题
- 0x00007FF9A7F72079 (ucrtbased.dll)处引发的异常: 0xC0000005: 写入位置 0x000000094D100000 时发生访问冲突
- css opacity属性_CSS中的opacity属性