Stories

List
Create Time

JS從扁平array轉tree

有時我們需要從扁平的數組結構(flat array),根據id,和pid構建出樹形數組結構(tree array),這種情形經常出現在嵌套的目錄結構,如下圖: 或者企業的部門架構,也會出現上面的類似結構。 類似上面的情景,假如我們有以下的數據: let entries = [{ "id": "12", "parentId": "0", "text": "Man",

Create Time

nginx在同一域名下部署多個vue項目

本文介紹使用nginx服務器在同一個域名下如何部署多個前端項目,在vue3使用vite打包時配置文件vite.config.ts中的base的配置方式,以及vue-router中history的配置方式,以及如何在nginx中配置才能使前端項目正常解析等關鍵步驟,結束你在前端項目部署時的苦惱。 項目場景描述 假設你有一個域名admin.iicoom.fun 現在有兩個前端項目,普通的前

Create Time

vue項目引入pwa使網頁應用可安裝

最近在使用vue項目時看到一個這樣的效果,如圖: 現在其實有很多網站都支持把網頁安裝到電腦或手機(IOS Safari支持較好),如下圖安裝後的效果: 這些都是網頁應用。 接下來介紹一下如何讓你的vue2項目變得可以安裝。 添加cli-plugin-pwa 給現有的vue項目添加,使用下面命令: vue add pwa 執行完之後會自動在package.json添加"@vue/c

Create Time

vue項目部署後提示用户有新版本

你可能在瀏覽器見到過上面這種UI,這是在vue項目重新build在服務端部署後,瀏覽器刷新頁面彈出的提示,這時如果用户點擊更新就會重載頁面,清除之前的緩存獲取最新內容。 這是怎樣發生的呢?你可能會想到下面的方式: 服務端編譯重新部署維護一個版本號,客户端通過輪詢檢測和本地存儲的是否相同,發現更新的版本就彈框提示(缺點 耗電。尤其是在移動端) 通過在html中做版本標記... websoc

Create Time

CSS Grid Layout(網格佈局)

CSS 有一些屬性經常被用來解決佈局問題:如(浮動float、定位postion)這些比較 hack 的方法經常會給頁面遺留下一些問題。 彈性盒子Flexbox是一個非常好的佈局工具,網格佈局 CSS Grid Layout 是最新、更強大的佈局方式。本文就來簡單介紹一下什麼是網格佈局。 網格佈局(CSS Grid Layout) 網格佈局是二維的佈局系統,和過去常用的佈局方式相比完全改變

Create Time

Mongoose無法更新時間戳

Mongose 是為 node.js 開發的 MongoDB 對象模型,它基於schema來處理應用的數據模型,開箱即用。 schema中的時間戳 const mongoose = require('mongoose'); const BlogSchema = new mongoose.Schema({ id: { type: Number }, title: { type: Strin

Create Time

JavaScript閉包

本文將帶你用正確姿勢看待JavaScript閉包。 在 JavaScript 中閉包描述的是 function 中 外層作用域的變量 被內層作用域 引用的場景,閉包的結構為 內層作用域 保存了 外層作用域的變量。 要理解閉包,首先要知道 JS詞法作用域 是如何工作的。 JS詞法作用域(lexical scoping) 來看這段代碼: let name = 'John'; function gre

Create Time

一篇搞定面試中的跨域問題

什麼是CORS(跨源資源共享)? CORS(Cross-Origin Resource Sharing)是一種機制,允許網頁從不同的域訪問服務器上的資源。 在同源策略下,瀏覽器限制了跨域訪問,CORS允許服務器指定哪些源可以訪問其資源。 同源策略(Same-origin policy) 同源策略在web應用安全模型中是一個重要的概念。在這個策略下,瀏覽器允許第一個網頁中包含的腳本可以獲取第二個網頁