模板字符串是``包裹起来的东西,是es6的语法,
这个我目前是很少用的,之前在react里面用了一次,但也不知道到底是为什么。这里解一下惑。其实用这个呢主要是因为html不区分大小写,我们在写组件的时候使用模板字符串包裹一下,这样就避免了写组件html模板(也就是<template>的代替)时换行。在模板字符串中使用组件就避免了驼峰法-法的转换(后者还要用用)问题,但是呢,要注意我们在使用vue的template时就是默认用了字符串模板。不需要我们手动加`。
官网原话:
当使用 PascalCase (首字母大写命名) 定义一个组件时,你在引用这个自定义元素时两种命名法都可以使用。也就是说 和 都是可接受的。注意,尽管如此,直接在 DOM (即非字符串的模板) 中使用时只有 kebab-case 是有效的。
实际使用中,建议不要使用这个,因为部分浏览器在解析的时候还是会出现混乱的bug,IDE 仍然会通过语法高亮、tab 格式化、换行符等地方的问题折磨着你。所以还是老实点吧,除非是像react里面注册组件时必须套一下,其他的时候还是免了吧。
模板字符串的优点:主要是换行上
传统的JavaScript语言,输出模板通常是这样的写的。
$('#result').append(
'There are <b>' + basket.count + '</b> ' +
'items in your basket, ' +
'<em>' + basket.onSale +
'</em> are on sale!'
);
上面这种写法相当繁琐不方便,ES6 引入了模板字符串解决这个问题。
$('#result').append(`
There are <b>${basket.count}</b> items
in your basket, <em>${basket.onSale}</em>
are on sale!
`);
模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量
// 普通字符串
`In JavaScript '\n' is a line-feed.`
// 多行字符串
`In JavaScript this is
not legal.`
console.log(`string text line 1
string text line 2`);
// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?
上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。
let greeting = `\`Yo\` World!`;
输入结果:`Yo` World!
如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。
$('#list').html(`
<ul>
<li>first</li>
<li>second</li>
</ul>
`);
代码来自https://www.cnblogs.com/gaoya666/p/9071035.html
字符串 和模板字符串 和VUE里组件注册与使用时驼峰法-法的转换