就像是
var tpl = `
<div>
template
<span>string</span>
</div>
`
Run Code Online (Sandbox Code Playgroud)
会产生:
var tpl = "\n<div> \n template\n <span>string</span>\n</div>\n";
Run Code Online (Sandbox Code Playgroud)
我需要的是摆脱额外的空间和可能的换行符,就像所有其他html缩小工具一样.
所以它应该变得类似于:
"<div>template<span>string</span></div>"
Run Code Online (Sandbox Code Playgroud)
有没有什么方法能够明智地实现这一目标并且坚不可摧?
在JavaScript文件中使用反引号时,例如:
var name = 'Tom';
var greeting = `hello my name is ${name}`;
Run Code Online (Sandbox Code Playgroud)
PhpStorm执行各种奇怪的自动格式化打破文件.
反引号随机出现或消失,对文件的其余部分进行注释.我在"设置"中禁用了"插入对引号"选项,但问题仍然存在.
有没有办法在PhpStorm版本2016.1.2中禁用反引号的自动格式化?
我想插入一个模板字符串(在其他地方定义):
const url = `www.example.com/${query}/current.json`;
Run Code Online (Sandbox Code Playgroud)
带有动态值(例如“es6”):
"www.example.com/es6/current.json"
Run Code Online (Sandbox Code Playgroud)
例如,如果我有这样的事情:
function makeRequest(url, query){
// how do I generate my final url, here from the url and query?
}
// somehwere else:
makeRequest(url, query)
Run Code Online (Sandbox Code Playgroud)
带标签的模板字符串和标签函数是正确的方法吗?我见过很多不同的例子,但没有一个适合这种特殊情况。
关于StackOverflow的许多问题都涉及到将条件类名应用于React组件。但是,对于这种特殊情况,我还没有一个好的答案:
我有一个基本的div,我想有条件地应用“ is-required”类。这是我的方法:
<div className={`some-class ${isRequired && 'is-required'}`}>
Run Code Online (Sandbox Code Playgroud)
这里的主要问题是,当isRequired为false时,我编译的HTML代码最终看起来像这样:
<div class='some-class false'>
Run Code Online (Sandbox Code Playgroud)
显然,我可以使用像这样的三元运算符,所以我可以返回一个空字符串:
<div className={`some-class ${isRequired ? 'is-required' : ''}`}>
Run Code Online (Sandbox Code Playgroud)
但是然后在已编译的HTML代码中,该类中包含了这个额外的随机空间,这不会引起任何渲染问题,但是我仍然不喜欢它:
<div class='some-class '>
Run Code Online (Sandbox Code Playgroud)
即便如此,我也可以删除“ someClass”之后的空格,并在“ isRequired”之前包含该空格,但是现在它更难阅读且感觉有点笨拙:
<div className={`some-class${isRequired ? ' is-required' : ''}`}>
Run Code Online (Sandbox Code Playgroud)
我听说过诸如类名之类的实用程序,但是我正在寻找一种不需要任何其他软件包的简单解决方案。
这里推荐的方法是什么?
在ES6中,我可以这样做:
let myString = `My var: ${myVar}`;
Run Code Online (Sandbox Code Playgroud)
那将自动替换${myVar}为实际值myVar.完善.
但是,如果我有这样的东西怎么办?
let myString = `My var: \${myVar}`;
Run Code Online (Sandbox Code Playgroud)
角色\正在逃避${}构造.它只是一个常规字符串.
在这种情况下我怎么能\ 逃脱?
为什么我不能在 vue.js 中使用 es6 模板字符串v-bind:style
这有效:
<div :style="{transform:'translate('+x+'px,'+y+'px)'}">
Run Code Online (Sandbox Code Playgroud)
但这默默地失败了:
<div :style="{transform:`translate(${x}px,${y}px)`}">
Run Code Online (Sandbox Code Playgroud)
(我当然知道 es6 浏览器兼容性,并且使用支持模板字符串的浏览器)
使用Notepad ++在Typescript中编写模板字符串时,当我专注于模板字符串时,字符串前景变为白色,这与背景颜色形成了鲜明对比,我在“设置”选项卡中检查了Notepad ++样式配置器,但没有看到任何选项完全更改焦点时更改模板字符串的前景色。
当模板字符串没有焦点时,看起来不错
当它有焦点时,我几乎看不到字符串
我该如何改变?
while (c) {
tag`str0 ${e} str1`
}
Run Code Online (Sandbox Code Playgroud)
JavaScript运行时创建一个冻结的数组,Object.freeze(['str0 ', ' str1'])但具有附加.raw属性.
是否可以将该对象用作a中的键,WeakMap以避免每次循环时都必须基于数组重做工作?
const memoTable = new WeakMap
function tag(templateStrings, ...values) {
let cached = memoTable.get(templateStrings)
if (!cached) {
// Compute cached and put it in the table for next time.
}
// Do something with cached and values
}
Run Code Online (Sandbox Code Playgroud)
第12.2.9.3节运行时语义:GetTemplateObject(templateLiteral)描述了如何缓存此值:
- 让领域成为当前的领域记录.
- 让templateRegistry成为领域.[[TemplateMap]].
所以从tag上面的循环中使用它应该是相同的,这将是一个很好的属性的密钥.
在我看来,[[TemplateMap]]必须弱引用模板对象数组,否则
for (let i = 0; i …Run Code Online (Sandbox Code Playgroud) javascript weakmap ecmascript-6 template-strings tagged-templates
我有这行代码:
console.log(`now running each hook with name '${chalk.yellow(aBeforeOrAfterEach.desc)}', for test case with name '${chalk.magenta(test.desc)}'.`);
Run Code Online (Sandbox Code Playgroud)
问题是我必须将它放在我的 IDE 中的多行上,以使其适合(我使用 100 列)。当我将模板字符串放在多行上时,模板字符串将其解释为换行符,这不是我想要的。
所以我的问题是 - 如何在不使用换行符记录的情况下有多行模板字符串代码?
ESLint:403行超过最大行长120(max-len)
我有一个很长的字符串,我使用 ES6 模板字符串构建,但我希望它没有换行符:
var string = `Let me be the 'throws Exception’ to your 'public static void
main (String[] args)’. I will accept whatever you give me my ${love}.`
console.log(string);
Run Code Online (Sandbox Code Playgroud)
结果:
Let me be the 'throws Exception’ to your 'public static void
main (String[] args)’. I will accept whatever you give me xxx.
Run Code Online (Sandbox Code Playgroud)
我的期望:
Let me be the 'throws Exception’ to your 'public static void main (String[] args)’. I will accept whatever you give me xxx.
Run Code Online (Sandbox Code Playgroud)
要求:
我不能禁用 …
template-strings ×10
javascript ×8
ecmascript-6 ×7
backticks ×1
node.js ×1
notepad++ ×1
phpstorm ×1
reactjs ×1
typescript ×1
vue.js ×1
weakmap ×1