jerrys-safer

1.0.3 • Public • Published

safer


React Trigger Component

[![NPM version][npm-image]][npm-url] [![npm download][download-image]][download-url]

description

import { React } from 'react'

const App = props => {
    return (
      <div>
        {serverData 
            && serverData.producList 
            && serverData.producList[0] 
            && serverData.producList[0].price 
            && ( <div>{`the price is ${serverData.producList[0].price}`}</div>
        )}
      </div>
    )
}

如果你不想再写出这样的代码,可以来试试 safer。

使用 safer 可以安心读写对象的属性和值,让开发者将精力集中在代码逻辑上,引入 safer 并包裹在想要读写的对象外层,即可安全使用。 当获取/赋予的属性不存在时,程序并不会崩溃白屏,可以减少开发者为了“保证程序健壮性”而加入的层层判断的冗余代码。

NOTE: safer 使用了 Proxy 的特性来实现安全读写功能,如果浏览器环境不支持 Proxy,可以使用 proxy-polyfill

safer 也支持方法的调用。如果对象中的方法不一定存在,那么也可以使用 safer 包裹在外层,安心调用

install

npm install jerrys-safer --save

Example

online example: demo

Usage

import { React } from 'react'
import { magicData } from '../api'
import { safer } from 'jerrys-safer'
const safeData = safer(magicData)
safeData.a.b.c.d.c.name = 'jerry' // fine
const App = props => {
    return (
      <div>
        {safeData.a.b.c.d.f.g.get()}
      </div>
    )
}

API

props

api type description
exist function 判断对象中属性的值是否存在,返回布尔值
get function 获取对象中属性的值,如果属性不存在,则返回 undefined
set function 为对象中的属性赋值,如果属性不存在,则返回 undefined
invoke function 执行对象中的函数方法,如果不是函数,则不会执行,并打印警告
赋值操作 为对象中的属性赋值,如果属性不存在,则返回 undefined

Readme

Keywords

none

Package Sidebar

Install

npm i jerrys-safer

Weekly Downloads

0

Version

1.0.3

License

none

Unpacked Size

5.97 kB

Total Files

3

Last publish

Collaborators

  • jerryfd