フロントエンド-雑記

2604 ワード

久しぶりにブログを書きましたが、今日は勝手に書いてください.
最近ずっとフロントエンドの業務の論理コードを書いて、前に学習して使うのはすべてちゃんぽんなため、専門のフロントエンドのコードの書くことに対してとても力がなくて、主にフロントエンドのコードの思想のこれで、機能を実現することができて、しかし効率が足りなくて、簡潔ではありません.
インタフェースはElement UIフレームワークを使用して、ドキュメントとケースを通じてプロジェクトに必要な論理コンポーネントを構築します.
仕事の途中で、初めてjavaのwebsocketとjsのwebsocket通信を使って、vueの中で購読主推を実現してリアルタイムの相場を表示して、この内容はとても面白くて、初めは顔が見えなくてぼんやりしていて、つまずいて、それから次第に整理して、論理関係を明らかにしました.
フロントエンドコードでは配列オブジェクト、データ型、データ精度などを処理することがよくありますが、ここでは少し記録します.
1.BigNumberオブジェクトを使用してjsデータの精度要求を実現する.具体的なコードは以下の通りである.
let avaliable = new BigNumber(x).minus(y)
.plus(z).minus(o).plus(p).minus(q)
avaliable.toFormat()

2、使用|&&回避の問題
if(!oldCurrentRow || currentRow.row_id!==oldCurrentRow.row_id){}

この判断でoldCurrentRowオブジェクトが空になる可能性があり、oldCurrentRow.row_idエラーを報告し、このような問題を排除する場合に使用可能|,前半がtrue後半の論理であれば行われず、後半コードの実行を保証する場合 oldCurrentRowは空ではありません.
3、配列の重量除去
let obj = {}
data=data.reduce((cur,next)=>{
  obj[next.value] ? "" : obj[next.value] = true && cur.push(next);
  return cur;
},[])

4,catchを用いてアラームエラーを与える
      cancelOrder(){
        this.$alert('          ?', '  ', {
          confirmButtonText: '  ',
          cancelButtonText: '  ',
          type: 'warning'
        }).then(() => {
          this.$post('xxx.json', {
            yy: zz //  
          }).then(resp => {
            this.$message.success('    ')
          }).catch(() => {
            this.$message.error('    ')
          })
        }).catch(() => {
          this.$message.info('     ')
        })
      },

5,forEachとpushを使用してデータセットを必要な配列オブジェクトにフィルタリングする
      doHandle(){
        let symbols = []
        this.allSymbols.forEach(item=>{
          if(item.no== this.selectedRow.no){
            symbols.push({
              lable:item.name,
              value:item.no,
            })
          }
        })
      },

6、定時クエリー指定方法、ライフサイクル終了時にクエリーを停止
      //       
      searchSecurity(){
         …………        
      },
      //    ,30s
      setInterval(){
        this.intervalFlag = setInterval(this.searchSecurity, 30000);
      },
      //      ,      
      beforeDestroy(){        
        clearInterval(this.intervalFlag)      
      },

7,文字列は数字の種類を誤認して加算する.文字列に1を乗じて数値タイプに変換します.および四捨五入指定桁数小数点以下
          let ratio=(this.lever_ratio*1+1)*100/(this.lever_ratio)
          ratio=ratio.toFixed(4)