原创 Docker 部署 Sentry

部署 Sentry 要求 Docker 17.05.0+ Compose 1.23.0+ 至少需要2400MB RAM Docker 及 Sentry 依賴安裝 如果 Docker 版本太低,需要卸載舊版本。 卸載Docker

原创 markdown-it和highlight.js的結合渲染代碼,並添加自定義行號

一般寫博客都採用md格式,快捷方便,但是寫好之後爲了方便查看,我們需要將md格式的代碼解析。 markdown-it 本示例中採用的是markdown-it來解析md格式的代碼。 highlight.js 本示例中採用的是high

原创 mysqljs的Promise封裝

mysqljs暫不支持Promise的寫法,這導致我們代碼的嵌套層級增多,不易於理解和維護,所以需要對其進行Promise封裝,結合async/await來使代碼易於維護。 mysqljs的Promise封裝 假設我們將mysql

原创 Vue路由權限

在做後臺管理系統的時候,一般都會遇見路由權限的問題。 大家可以先體驗一下最終的例子 authority vue Router ,例子項目地址 authorityRouter。在例子的登錄頁面中,通過選擇不同的用戶類型來模擬不同的用

原创 markdown-it代碼塊渲染、自定義行號、複製代碼功能

之前寫過一篇關於代碼塊渲染添加自定義行號的文章:markdown-it和highlight.js的結合渲染代碼,並添加自定義行號 。 不過在之後的渲染使用過程中由於效果不是很好,所以重新改版,並藉此機會添加複製代碼功能。 本博客採

原创 Vue cli 配置CDN及Gzip

在Vue項目中,爲了提升性能縮短首頁的白屏時間(更具體的白屏時間可查看Web 性能優化-首屏和白屏時間),我們可以通過將公共庫採用CDN引入的方式以及將資源文件壓縮的方式。 關於 配置CDN及Gzip 之後可從以下3個鏈接進行體驗

原创 nginx 配置 gzip_static

關於 nginx 的 gzip ,可以分爲兩種: nginx 動態壓縮,對每個請求先壓縮再輸出。 nginx 靜態壓縮,使用現成的擴展名爲 .gz 的預壓縮文件。 nginx 動態壓縮 開啓 nginx 動態壓縮只需要在 ng

原创 Vue lifecycle 生命週期詳解

本文章主要介紹在全局混入、多個混入情況下初始化渲染的生命週期、更新生命週期以及銷燬的生命週期。 項目地址:vue-lifecycle 演示地址:vue-lifecycle 目錄說明 src/mixin 目錄下放的是不同組件或者頁面

原创 nuxt.js + pm2 部署

對於 nuxt 項目,一般採用官方提供的 create-nuxt-app 腳手架,具體過程 https://zh.nuxtjs.org/guide/installation/ 。 在實際開發中一般使用 npm run dev 其

原创 nuxt + vant 適配 rem

創建項目 npx create-nuxt-app <項目名> 詳情查看 安裝-NuxtJS 安裝vant npm i vant -S 引入vant 這裏採用的是: 導入所有組件 在根目錄的 plugins 目錄下創建 vant

原创 VS code 常用插件

VS code是現在流行的編輯器之一,我們可以通過安裝插件來實現更好的使用,下面是常用的插件合集(此處是以我常用的爲例),可以直接在VS code左側的Extensions中搜索: Chinese (Simplified) La

原创 vue 自定義事件傳參

先來簡單看個例子: TodoList.vue : <template> <ul> <li> <todo-item v-for="item in list" :key="item.id"

原创 css選擇器 - 1

[attribute] 例子 例子描述 [target] 選擇帶有 target 屬性所有元素。 [attribute=value] 例子 例子描述 [target=_blank] 選擇 targe

原创 Element-UI / dom.js 的學習

isServer const isServer = Vue.prototype.$isServer; Vue.prototype.$isServer表示當前是否是在服務器端渲染,例如使用 create-nuxt-app 創建的項

原创 Element-UI / scrollbar-width.js

獲取瀏覽器滾動條寬度,一般用於彈出層的時候,設置body的右邊距,防止overflow: hidden的時候元素抖動。 scrollbar-width.js import Vue from 'vue'; let scrollBa