原创 Vue更改了data裏的數據,但是視圖卻沒有更新
1.Vue不能檢測以下數組的變動: var vm = new Vue({ data: { items: ['a', 'b', 'c'] } }) vm.items[1] = 'x' // 不是響應性的 vm.items.
原创 node.js怎麼發起子進程
node本身爲單進程,並使用驅動模式處理併發,爲了解決單進程在多核cpu上的資源浪費,node提供了cluster和child_process模塊來創建多個子進程。 Node.js是單線程的,對於現在普遍是多處理器的機器是一種浪費,怎麼能
原创 xss和csrf
XSS定義的主語是“腳本”,是一種跨站執行的腳本,也就是javascript腳本,指的是在網站上注入我們的javascript腳本,執行非法操作。 CSRF定義的主語是”請求“,是一種跨站的僞造的請求,指的是跨站僞造用戶的請求,模擬用戶
原创 Http2管線化和持久連接
瀏覽器在默認狀態下並不激活http管線化功能。管線化:是一項實現了多個http請求不需要等待相應的應答就能夠寫進同一個socket的技術。管線化需要客戶端和服務端雙方都支持管線化。 http持久化持久化連接也稱http長連接或者http連
原创 JS中實現繼承的幾種方法及其優缺點
要搞懂JS繼承,我們首先要理解原型鏈:每一個實例對象都有一個__proto__屬性(隱式原型),在js內部用來查找原型鏈;每一個構造函數都有prototype屬性(顯示原型),用來顯示修改對象的原型,實例.__proto__=構造函數.p
原创 express中間件和路由
1.通常http的url是這樣的:http://host[:port][path],http表示協議、host表示主機、port爲端口、path指定請求資源的URI,如果URL沒有給出path,一般默認爲“/”(通常有客戶端來補上) 2.
原创 js中創建對象的幾種方式
1.工廠模式 function createPerson(name){ //1、原料 var obj=new Object(); //2、加工 obj.name=name; obj.showNam
原创 promise的理解
常見的異步編程方式有:回調函數、事件監聽、ES6的promise。而promise是用來解決回調噩夢的,當無數個回調函數嵌套那將是災難性的,promise相當於是將回調函數用一種更簡單明瞭的方式改寫。 promise其實是一個構造函數,其
原创 webpack淺析
webpack 是現在前端開發常用的打包工具,上手簡單,但是有很多概念比較難懂。這裏整理下,方便以後查閱。 loader 和 plugin 主要區別 loader 用於加載某些資源文件。 因爲webpack 本身只能打包commonjs
原创 JS模塊化
隨着前端js代碼複雜程度提高,js模塊化是一個必然趨勢,不僅好維護同時依賴明確,不會污染全局。 1.無模塊化:通過script標籤引入js,相互羅列,但是被依賴的放在前面,否則就會報錯。 缺點:
原创 property與attribute的區別
我們在進行面向對象編程的時候,首先我們會把客觀事物進行抽象,然後再把抽象出來的結果封裝成類,故面向對象的特性則可以爲:抽象、封裝、多態和繼承。 property就是我們面向對象編程時,類裏表示對象狀態的成員。 而attribute則是我們
原创 進程與線程
在理解進程和線程概念之前首選要對併發有一定的感性認識,如果服務器同一時間內只能服務於一個客戶端,其他客戶端都再那裏傻等的話,可見其性能的低下估計會被客戶罵出翔來,因此併發編程應運而生,併發是網絡編程中必須考慮的問題。實現併發的方式有多種:
原创 JS的事件循環機制
1.爲什麼js是單線程的? 作爲運行在瀏覽器的腳本語言,主要用途之一是操作DOM,如果有兩個線程同時對一個DOM進行操作的話,則瀏覽器不知道該聽誰的 2.主線程:規定現在執行執行棧中的哪個事件 主線程循環:即主線程會不停的在執行棧中讀取事
原创 webpack流程
我們可以把webpack看成一個工廠,進入的原料經過工廠的加工,然後輸出 1.前端環境搭建:使用npm install webpack來安裝webpack 2.部署webpack:在package裏配置 3.html打包我們需要安裝引入h
原创 vue+express搭建系統時利用token保持登陸狀態
在我們登陸以後,我們通常希望以後的每次url請求都帶上認證信息,即讓我們的服務器知道我們已經登陸。利用jwt(jsonWebToken)插件可以幫我們生成相應tokten const jwt = require('jsonwebtoke