我有以下字符串tempalte:
const someUrl = `/${currentLocale}/somecategory/${category.get('slug')}/${post.get('iD')}/${post.get('slug')}`;
问题是这行太长了,我不得不打破它,但是在它的中间加上简单的输入 - 导致在生成的字符串中添加新行和额外的空格。
为了代码风格的目的,将字符串模板分成几行的最佳方法是什么?
答案 0 :(得分:3)
如果你的意思是像python中的反斜杠,我恐怕没有,javascript没有那个。
我建议使用+来组合多个字符串段。你有更好看的缩进更容易,例如:
const someUrl = `/${currentLocale}/somecategory/${category.get('slug')}` +
`/${post.get('iD')}/${post.get('slug')}`;
或者如果您正在使用节点,您也可以考虑util.format:
const util = require('util');
var template = '/%s/somecategory/%s/%s/%s';
var args = [currentLocale, category.get('slug'),
post.get('iD'), post.get('slug')];
const someUrl = util.format(template, ...args);
答案 1 :(得分:1)
我发现很难读取具有大量插值的模板字符串,就像你的例子一样。
另一种方法是创建每个部分的数组并使用Array#join
加入它们:
const someUrl = '/' + [
currentLocale,
'somecategory',
category.get('slug'),
post.get('iD'),
post.get('slug')
].join('/');
答案 2 :(得分:0)
我不是字符串连接的粉丝。因此,我建议您删除该多行模板字符串中的所有空格。
const someUrl = `
/${currentLocale}/somecategory/
${category.get('slug')}/
${post.get('iD')}/
${post.get('slug')}
`.replace(/\s+/g, '');