vue项目安装babel巧用es2020新语法

  • 操作运算符:??

    对应babel插件:@babel/plugin-proposal-nullish-coalescing-operator

    方法介绍:当左侧操作数为 null 或 undefined 时,其返回右侧的操作数,否则返回左侧的操作数。与逻辑或 || 运算符不同的是,逻辑或会在左操作数为 假值 时返回右侧操作数,可能会遇到隐式类型转换造成意外情况(如左侧操作数为 ’ ’ 或 0 时)

    const foo = null ?? 'default string';
    console.log(foo); // "default string"
    
    const baz = 0 ?? 42;
    console.log(baz); // 0
    
    const baz2 = 0 || 42;
    console.log(baz2); // 42
    

    安装介绍:

    npm install --save-dev @babel/plugin-proposal-nullish-coalescing-operator
    

    使用介绍:

    // babel.config.js
    {
        "plugins": ["@babel/plugin-proposal-nullish-coalescing-operator"]
    }
    
  • 操作运算符:?.

    对应babel插件:@babel/plugin-proposal-optional-chaining

    方法介绍:允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(nullish ) (null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined

    const obj = {
        foo: {
            bar: {
                baz: 42,
            },
        },
    };
    
    const baz = obj?.foo?.bar?.baz; // 42
    
    const safe = obj?.qux?.baz; // undefined(因为字段不存在,会返回undefined,而不会报错)
    

    小技巧:如果有个对象obj,需要在很多地方使用插值表达式去使用某个字段,如{{ obj.name }}、{{ obj.age }},但是担心某个字段不存在会抛出错误,可以使用过滤器+?.操作符避免错误

    <td>{{ obj.domainOut | dataExceptionHandler('name') }}</td>
    
    Vue.filter('dataExceptionHandler', (obj, attribute) => {
        return obj?.[attribute];
    });
    

    安装介绍:

    npm install --save-dev @babel/plugin-proposal-optional-chaining
    

    使用介绍:

    // babel.config.js
    {
        "plugins": ["@babel/plugin-proposal-optional-chaining"]
    }
    

以上babel插件不能在vue组件的template部分使用,只能在script部分使用,即只能在js部分中使用,但是可以使用计算属性/过滤器进行取巧使用。

更多babel插件:https://www.babeljs.cn/docs/plugins

如有问题,请指出,接受批评。

vue项目安装babel巧用es2020新语法_第1张图片

你可能感兴趣的:(Vue-成长之路,ES6-成长之路,JavaScript-成长之路,babel,vue中安装babel,es2020新语法,vue中使用es2020新语法,坏丶毛病)