Skip to content

快速开始

第1步. 安装

bash
pnpm add flexvars
bash
yarn add flexvars
bash
npm install flexvars

第2步. 初始化库

ts
import { FlexVars } from 'flexvars';

// 创建一个FlexVars实例
const flexvars = new FlexVars();

// Hello, FlexVars!
console.log(flexvars.replace('Hello, {name}!', { name: 'FlexVars' }))

第3步. 使用过滤器

过滤器采用类似管道符的方式,对变量值进行链式处理。

ts
flexvars.addFilter({
    name:"add",
    args:["suffix"],
    default:{suffix:"!"},
    next: (value,args) => {
            return value + args.suffix;
        }
});
// Hello, FlexVars!!!*
console.log(flexvars.replace("Hello, {name|add|add|add|add('*')}", { name: 'FlexVars' })) 
// Hello, FlexVars!!!*
console.log(flexvars.replace("Hello, {name|add|add|add|add({suffix:'*'})}", { name: 'FlexVars' }))
  • 以上创建了一个名称为add的过滤器,该过滤器提供了一个参数suffix,默认值为!,该过滤器的作用是在变量值后面添加suffix参数的值。
  • 上例中连续调用了4次add过滤器,其中3次使用了默认参数,最后一次使用了自定义参数'*',所以最后的结果为Hello, FlexVars!!!*
  • 过滤器本质上是一个函数,支持位置参数和字典参数,即add("!")add({suffix:"!"})是等价的。

第4步. 使用前缀后缀

支持为插值变量指定前缀和后缀,前缀和后缀可以是一个或多个字符。

ts

// Hello, (FlexVars)
console.log(flexvars.replace("Hello, {( name )}", { name: 'FlexVars' })) 

// Hello, 
console.log(flexvars.replace("Hello, {( name )}")) 
//Location: 
console.log(flexvars.replace("Location: {, module }{, function }{, line }")) 
//Location: module=x
console.log(flexvars.replace("Location: {module= module }{,func= function }{,line= line }", {module:"x"})) 
//Location: module=x,func=main
console.log(flexvars.replace("Location: {module= module }{,func= function }{,line= line }", {module:"x",function:"main"})) 
//Location: module=x,func=main,line=120
console.log(flexvars.replace("Location: {module= module }{,func= function }{,line= line }", {module:"x",function:"main",line:120}))
  • 当变量是空值时,前缀和后缀不会被输出。