日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

我开发中总结的小技巧

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我开发中总结的小技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

經過一段時間的react開發,自己總結了一些小習慣,自動構建webpack

1. 組件命名文件夾

一個組件一個文件夾,可讀性高,結構清晰

文件夾:Danamic(組件首字母大寫)index.jsx style.less data.js

引用 :

import Danamic from './Danamic'

webpack能自動識別文件夾內index文件 (index首字母只能小寫)

React 的 JSX 里約定分別使用首字母大、小寫來區分本地模塊的類和 HTML 標簽

2. 無狀態組件

import React from 'react' import { render } from 'react-dom'function isEmpty(obj) {return obj === null || obj === undefined }export default ({ type, clickFn }) => {let text = ''switch ((isEmpty(type) ? '' : type).toString()) {case "2":text = '沒有更多了'breakcase "1":text = '點擊加載更多'breakcase "0":text = '網絡加載問題,請稍后重試'break}return <div className="warning" onClick={clickFn}>{text}</div> }

沒有性能上的差別,就是實現同樣的功能,可以少寫下面這些代碼

export default class extends React.Component {constructor(props) {super(props)} }

3. static react.propTypes

constructor(props) {super(props)}static propTypes = {info: React.PropTypes.object.isRequired,loginSuccess: React.PropTypes.func.isRequired,}

加上propTypes 能一眼看出父組件傳的參數以及類型

4. 提取數據請求

data.js import React from 'react' import ajax from 'ajax-promise-simple' import loadPage from '@/common/loadPage'module.exports = {//獲取全部評論async getList(params) {let result = await ajax.getJSON('/amsquare/detailcomment', params)return { succsess: result.code === 0, data: result.data ? result.data : [] }},//點贊async zanClick(params) {let result = await ajax.getJSON(`/amsquare/addcmtpraise`, params)// console.log(params)return { succsess: result.code === 0 }},//刪除動態async removeDT(params) {let result = await ajax.getJSON('/amsquare/deldymanic', params)if (result.code === 0) {const url = `http://wen.58.com/amsquare/main?from=weijiaoliu_nav`;const browser = window.____json4fe.browser;loadPage(url, browser, false)}},}

應用:

import { getList } from '../data'getListData = async () => {this.setState({loading: true})let { succsess, data } = await getList(this.infoConf)this.setState({loading: false})if (succsess) {this.setState((preState, props) => ({hasMore: data.length < this.infoConf.pageSize ? false : true,resultStatus: data.length < this.infoConf.pageSize ? 2 : 1,list: [...preState.list, ...data],}))this.infoConf.pageindex++;} else {this.setState({resultStatus: 0})}}

5. 將多個組件放在一個index對外導出

import ajax from './ajax' import lazyload from './lazyload' import momentHelper from './momentHelper'export default { ajax, lazyload, momentHelper }

6. 提取封裝 共用組件

例如:

  • loading
  • log
  • debounce
  • 滑動加載更多
  • app下判斷登錄
  • app下跳轉頁面

引用:

import { scrollBottom, debounce } from '@/common/scrollData'

使用 @ 相當于src目錄 (自動構建配置) (比用 ../ ./ 好理解一些)

7. 用let替換var

8. 代碼加注釋

9. webpack.config.js

resolve: {...extensions: ['.ts', '.tsx', '.js', '.json', '.styl', '.less'], ...},

require的時候可以直接使用require('file'),不用require('file.js')

10.webpack 端口號隨機

port: Math.floor(Math.random() * 1001) + 7000,

最近寫文檔比較多,所以把MarkDown整理了一遍,有需要可以參考:

我的MarkDown學習之旅

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的我开发中总结的小技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。