原创 vue-cli3.0源碼分析@vue/cli-----add和invoke

上一篇已經講了create命令;那麼這一篇我們來看一下add和invoke這個命令。之所以放一起講,是因爲當add執行的時候,也會去執行invoke add vue add vue-cli-plugin-xxx 或 vue add @vue

原创 vue-cli3.0源碼分析@vue/cli-----create

本文主要學習vue-cli3.0的源碼的記錄。源碼地址: https://github.com/vuejs/vue-cli 主要對packages裏面的@vue進行學習。如下圖 在圖中我們可以看到vue-cli中,不僅僅有初始化工程

原创 普通函數和箭頭函數

我常常的使用箭頭函數,卻還沒有對箭頭函數有個深入的瞭解,現在找一下這2個函數的不同點 1. 箭頭函數本身沒有prototype(原型) 由於箭頭函數沒有原型,因此箭頭函數本身沒有this let a = () => {} console.l

原创 知識點小記

這是一些小問題的記錄和總結: 1. vue serve和build 在vue-cli3.0中可以快速的開發原型。通過全局安全@vue/cli-service-global npm i -g @vue/cli-service-global 那

原创 前端js寫Excel

前端如何才能寫excel,其實也是比較簡單的,只是沒有接觸這一塊,當然這邊講的只是簡單的入門。這邊主要講述2種方式,一種是支持主流瀏覽器,一種是支持Ie瀏覽器 主流瀏覽器 這邊主要是使用data協議,通過data協議解析excel的Cont

原创 npm和yarn安裝node-sass的問題

node-sass npm 安裝 node-sass 依賴時,會從 github.com 上下載 .node 文件。由於國內網絡環境的問題,這個下載時間可能會很長,甚至導致超時失敗。這是使用 sass 的同學可能都會遇到的鬱悶的問題。 np

原创 工程搭建---代碼風格統一

一個項目是會有多個成員來開發的,因此統一開發規範是很有必要的,不然每個人都有自己的風格,同步之後代碼都會報錯。我這邊是用Vscode編譯器的。 首先用vue-cli3.0創建一個工程其中選擇eslint+prettier類型,並且下載Vsc

原创 vue控件庫環境搭建(1)--統一打包

背景:爲了避免重複造輪子,很有必要開發一個通用組件庫,方便重複利用。本文是採用vue-lic3.0腳手改造而成的,使用vuepress作爲演示環境。 首先通過vue腳手架生產目錄如下: 然後我們需要修改一下:刪除public目錄,添加pac

原创 項目經驗總結

項目中前端開發問題經驗總結 ie下websocket的安全限制問題 問題描述:數據看板中的數據大部分都是實時數據或前一天統計的歷史數據,因此這邊後端考慮採用websocket來實時和定時推送數據來保證數據的實時性和有效性。而前端開發這邊爲了

原创 Vue動態加載異步組件的方法

這篇文章主要介紹了Vue動態加載異步組件的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 背景: 目前我們項目都是按組件劃分的,然後各個組件之間封裝成產品。目前都是採用iframe

原创 vue前端開發性能的可優化點

背景: 在項目中前端使用vue開發,都是使用vue腳手架工具,其webpack配置文件已經將大部分性能優化了,比如代碼壓縮,圖片base64轉換,代碼分離等。這些我們統統不需要去管。但使用vue時,其實還是有些細節點可以優化的,以下爲開發過

原创 Vue動態加載異步組件

背景: 目前我們項目都是按組件劃分的,然後各個組件之間封裝成產品。目前都是採用iframe直接嵌套頁面。項目中我們還是會碰到一些通用的組件跟業務之間有通信,這種情況下iframe並不是最好的選擇,iframe存在跨域的問題,當然是postM

原创 Vue源碼學習(三)——數據雙向綁定

在Vue中我們經常修改數據,然後視圖就直接修改了,那麼這些究竟是怎麼實現的呢?其實Vue使用了E5的語法Object.defineProperty來實現的數據驅動。那麼Object.defineProperty究竟是怎麼實現的呢?我們先來看

原创 Vue源碼學習(二)——生命週期

官網對生命週期給出了一個比較完成的流程圖,如下所示: 從圖中我們可以看到我們的Vue創建的過程要經過以下的鉤子函數: beforeCreate => created => beforeMount => mounted => beforeU

原创 Vue踩坑記錄(一)——vue,data屬性爲什麼使用了_或$開頭卻會提示報錯?

我們先來看一個簡單的例子: <template> <div class="hello"> {{test}} {{_tttttttttt}} {{$tttttt}} </div> </template> <scr