Closed LeoYuan closed 1 year ago
${}
我不推荐${}的原因是:
个人倾向{}:
我不推荐${}的原因是:
- 在模板字符串中使用 ${} 时,需要注意表达式的安全性,特别是当表达式包含用户输入时。
- 可读性相对弱些
个人倾向{}:
- 可读性强些
- 易用性不用过多考虑,{}符号的诞生本来就是用于计算机、数学领域,普通文案基本没人用。
安全性是指?这里不会涉及 `` 带来的计算行为的,只是一个占位符。
{} 还是容易出现的,如上所言,如何选择是综合易用性和功能性来判断,不然为啥主流模板引擎没人用 {}?
作为曾经hbs重度使用者,当然是{{}}了,看着就亲切 XD
${}
1, 2, 4大家不一定用过,3大家都了解,没有特别的需要当然就3咯,引擎能简单点就简单点。
@eternalsky @alvarto @liujuping 你们也给点建议?
需要考虑一下修改是否 breaking,因为开源以来支持的就是 {} 类型,所以建议默认还是保持 {}。
如果要考虑其他的类型支持,可以通过新增配置,例如 lodash 的 interpolate。
// Use custom template delimiters.
_.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
var compiled = _.template('hello {{ user }}!');
compiled({ 'user': 'mustache' });
// => 'hello mustache!'
如果修改成默认其他的类型,比如 ${},为了兼容,还需要保持 {} 的兼容支持,这种情况下冲突的问题也不能解决。
所以确认是用{}么?😃
@liujuping
由 https://github.com/alibaba/lowcode-engine/pull/1674 引发的调研和思考~
PR 中认为模板字符串是类似
我是 {name}
,由{}
包裹的即为插槽, 看了下 Demo 预览,认可的是{}
,看了下出码,认可的是${}
,查看 协议 发现前面写的是{}
,后面写的是${}
,大水冲了龙王庙了。。。于是去调研了一下哪种更好,有如下事实:
<%= name %>
{{}}
${name}
{}
到底使用哪种好,我想(yiyin)无非是平衡 易用性 和 功能性,比如是用一百个前后花括号
{{...{{name}}..}}
是不容易跟内容混淆的,但是不易用,使用简单标识,如:(name)
很简单,但是容易跟内容的括号产生冲突,需要用转义等方式才能更好的输出括号,所以业界在权衡两者后,出现了<%= %>
/{{}}
/${}
等多种流行方案。我个人倾向是使用
${}
,大家觉得呢?