原创 一個自定義事件封裝,WeakMap的應用

本事件封裝類特色是支持對象事件名,支持弱應用,可以確保監聽自動刪除 // 用 Symbol模擬私有變量 const event = Symbol("eventPropery"); const eventWeak = Symbol("even

原创 vue前端開發中登錄相關業務邏輯總結

登錄標誌爲token 1、登錄token來源 a、外面參數傳遞進來,多系統聯動做免登錄 要注意:當從鏈接上獲取這個參數時,在已登錄的情況下是否需要每次都重置 要注意:鏈接上的token參數過多,有多個,vue中token對應一個數組,取數組

原创 前端權限控制時要考慮的5個問題

1.登錄控制 哪些頁面不需要登錄就可以進入 實現思路: 在路由配置metal裏配置是否需要登錄 默認需要登錄,在路由之前的鉤子裏進行判斷 2.路由控制 不同角色訪問不同的頁面 實現思路:路由配置分成靜態路由和動態路由,動

原创 改公共代碼的總結

查找代碼引用範圍, 梳理影響範圍,告訴測試要測試哪些功能模塊 2.git reset xxx --hard (回退到xxx提交,這個xxx提交不會被刪除,會把他之前的都是刪除) git revert xxxx (重寫xxx提交,會

原创 蘋果瀏覽器 時間格式 兼容問題的坑 最後給一個非常完美的字符串轉Date對象的函數

很多人知道如下寫法來兼容蘋果瀏覽器,但是其實這個寫法也是有問題的 function praseTime(time){ let date = new Date(time.replace(/-/g,'/')) return date;

原创 vue 頁面空白問題總結

頁面空白我遇到的就如下幾種情況 1.路由異常, 一般是next()函數沒有被執行 不執行的原因就是在 beforeEach 裏 a.if判斷的某個分支讓它沒有走next() b.某個異常跳出導致沒有執行 c.網絡請求 只處理了then的情況

原创 location.search 秒用

vue-router hash模式下,有時候爲了去掉 鏈接上的一些參數, 我們可以給 location.search 賦值,這會引起 頁面刷新, 而且後面的代碼會繼續執行 function test(){ location.search

原创 微信公衆號的域名配置規則 1.業務域名 2.js接口安全域名 3.網頁授權域名 4.配置地址

微信公衆號h5開發一般要配置三個域名 業務域名 網頁授權域名 js接口安全域名 年紀大了以後,開發久了以後總會忘記他們是個啥意思,現在總結如下 1.業務域名 總結就是 配置這個以後 1 輸入框就沒有風險提示了 2 微信內訪問這個頁面不

原创 微信小程序通過 boundingClientRect 獲取到頂部的距離,坑之一

const query = wx.createSelectorQuery(); query .select('#nodeId') .boundingClientRect(function (res) { console.lo

原创 微信公衆號h5開發總結

下面是一個公衆號h5頁面流程,說一下流程的功能,用戶看到一個營銷活動,選人報名支付參加該活動。 下面從8個點說明要注意的事情 1.頁面跳轉註意事項 h5頁面運行在瀏覽器裏(運行在微信裏的情況也是微信裏內嵌了一個瀏覽器),瀏覽器默認提供了

原创 husky+lint-staged+eslint+vue 代碼規範 .eslintrc.js 配置 .prettierrc 配置 package.json裏配置 代碼格式化 要做的事情

一般我們會在package.json裏看到如下的配置 "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-

原创 husky+lint-staged+eslint+vue 代碼規範

一般我們會在package.json裏看到如下的配置 "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-

原创 es6 async / await 使用經驗總結

async await使用的注意事項 async await注意 不能捕獲Promise拋出的異常,所以我按下面的方法使用它 async getPosterData(optType = 'search') { this.loa