用vue.js和vue-router重構一個網站
拿了個以前的專案做練手,用了vue-cli,vue-router,vuex。主要還是想學習一下webpack和單檔案元件的思想。不過程式碼寫得其實挺匆忙,感覺還有很多地方還能改進,元件化思想還是不能很好的掌握。
github地址:https://github.com/fshwc/vuedemo-mpacc
vue-lic和webpack
很久以前我就看了webpack,但是因為還挺新的,大多資源都是英文,所以除我跟著網上做做demo沒實際嘗試過。但是vue我也學到了一定階段,該進入進階階段了。vue-cli其實幫我們構建好一切了,一句vue init webpack-simple vuedemo
webpack-dev-server
就能把專案跑起來了。 webpack打包需要指定入口檔案,這個其實指定多少個入口都無所謂的,但是要改出口哦~
//單入口 webpack.config.js
module.exports = {
entry: './main.js',
output: {
filename: 'bundle.js'
}
};
//多入口
module.exports = {
entry: {
bundle1: './main1.js',
bundle2: './main2.js'
},
output: {
filename: '[name].js'
}
};
但是這專案能這麼想,我把首頁做唯一的入口檔案,那麼跳轉的時候我再非同步載入相應的模組,所以這次我只用了一個入口檔案main.js。
當我沒了解清楚的時候,會想把整個專案都打包成一個js啊,那這個js不就很大,載入很慢嗎,但是有一東東叫懶載入,結合 Vue 的 非同步元件 和 Webpack 的 code splitting feature, 輕鬆實現路由元件的懶載入 http://router.vuejs.org/zh-cn/advanced/lazy-loading.html
單檔案元件
頁面上的每個 獨立的 可視/可互動區域視為一個元件;
每個元件對應一個工程目錄,元件所需的各種資源都在這個目錄下就近維護;
每個元件相對獨立,頁面只不過是元件的容器,元件自由組合形成功能完整的介面;
當不需要某個元件,或者想要替換元件時,可以整個目錄刪除/替換。
現在我自認還沒理解好元件化開發,只是把相同功能的元件放在同一個目錄下而已。vuex建議的專案結構。。。http://vuex.vuejs.org/zh-cn/structure.html。不知道這個是不是分太細。。。不過我相信一個專案足夠大的時候,這樣佈局或許會更好~
專案介紹
用vue重構了校內網,頁面跳轉用了vue-router,我還暫時用了下vuex,但是其實這個是多餘的。。。。本來想運用vuex代替連線資料庫查詢後返回資料,但是沒找到合適的運用方式。所以不是每個專案都需要vuex,尤大大也提醒在專案需要的時候再用。等過完年,我看看webpack怎麼結合Express,用vue-resource發起請求,連線資料庫並返回資料,繼續完善~~
相關推薦
用vue.js和vue-router重構一個網站
拿了個以前的專案做練手,用了vue-cli,vue-router,vuex。主要還是想學習一下webpack和單檔案元件的思想。不過程式碼寫得其實挺匆忙,感覺還有很多地方還能改進,元件化思想還是不能很好的掌握。 github地址:https://github.
Vue.js和SpringBoot在用axios傳遞引數遇到的坑
最近在研究vue.js 在使用其axios的時候,用Post傳遞陣列物件到後臺 controller始終無法獲取到值!! 原本我是這樣寫的: vue: controller: 控制檯報錯如下 隨即百度,,, https://blog
用Vue.js遞迴元件構建一個可摺疊的樹形選單
在Vue.js中一個遞迴元件呼叫的是其本身,如: Vue.component('recursive-component', { template: `<!--Invoking myself!--> &
用Vue.js和Webpack開發Web線上鋼琴
緣起 由於童心未泯,之前在手機上玩過鋼琴模擬App,但是手機螢幕太小,始終覺得不過癮。其實對於我這個連基本樂理都不懂的“樂盲”來說,就算給我一臺真正的鋼琴,我也玩不轉。不過是圖個新鮮、權當娛樂罷了。最近剛好入手一臺帶觸控式螢幕的Lenovo Yoga 4 Pro,這倒給
Vue.js結合vue-router和webpack編寫單頁路由專案
一、前提 1. 安裝了node.js。 2. 安裝了npm。 3. 檢查是否安裝成功: 開啟cmd,輸入node,沒有報“node不是內部或外部命令”表示安裝成功node.js。 開啟cmd,輸入npm,沒有報“npm不是內部或外部命令”表示安裝成功node.js。 注意
utils.js和vue-loader.conf.js
sss extra ports xtra build con span map row var utils = require(‘./utils‘)var config = require(‘../config‘)var isProduction = process.env
vue js 和signalr 結合實現消息推送1
ack all client aspnet 由於 user startup man logs 由於signalr2.2.0 依賴於jQuery,雖然在vuejs 略顯臃腫, 但是對於目前剛接觸 vuejs 和想實現 前後分離的我來說 這已經很好了。目前先實現功能, 然後如果
Vue.js 和 MVVM 小細節
冗余 touch one 提高 初始化 分享 問題 函數 為什麽 MVVM 是Model-View-ViewModel 的縮寫,它是一種基於前端開發的架構模式,其核心是提供對View 和 ViewModel 的雙向數據綁定,這使得ViewModel 的狀態改變
用Rails.5.2+ Vue.js做 vue-todolist app
func 出現 error pda cat check pan 完成 asc Rails5.2+Vue.js完成Lists(curd) 註意: Edit/update使用SPA(不換頁)的方法完成。點擊文字出現一個輸入框和按鈕。 我的git: https://github.
vue.js路由vue-router(一)——簡單路由基礎
styles mounted num 前言 vue.js ren main.c -s col 前言 vue.js除了擁有組件開發體系之外,還有自己的路由vue-router。在沒有使用路由之前,我們頁面的跳轉要麽是後臺進行管控,要麽是用a標簽寫鏈接。使用vue-rout
Vue.js 使用Vue.js和Jquery做增刪改查
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link href="boo
node.js vue-axios和vue-resource
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue-resource</title> <script
angular.js和vue.js中實現函數去抖(debounce)
搜索輸入框 sea class 方案 get clas 電路 dia ive 問題描述 搜索輸入框中,只當用戶停止輸入後,才進行後續的操作,比如發起Http請求等。 學過電子電路的同學應該知道按鍵防抖。原理是一樣的:就是說當調用動作n毫秒後,才會執行該動作,若在這n毫秒內又
Vue.js 從 Vue Router 0.7.x 遷移
從 Vue Router 0.7.x 遷移 只有 Vue Router 2 是與 Vue 2 相互相容的,所以如果你更新了 Vue ,你也需要更新 Vue Router 。這也是我們在主文件中將遷移路徑的詳情新增進來的原因。 有關使用 Vue Router 2 的完整教程,請參閱&nbs
使用vue.js路由踩到的一個坑Unknown custom element
在配合require.js使用vue路由的時候,遇到了路由元件報錯: “vue.js:597 [Vue warn]: Unknown custom element: <router-link> - did you register the component corre
對頁面某個節點的拖曳(原生js和vue專案)
HTML5中的draggable draggable 屬性規定元素是否可拖動(連結和影象預設是可拖動的。) /// true:規定元素是可拖動的,false:規定元素是不可拖動的,auto:使用瀏覽器的預設特性。 <element draggable="true|false|a
同時使用vue.js和jquery時,jq事件無響應解決辦法
先載入vue.js,讓頁面渲染完成後載入jq,給jq繫結ready事件 $(document).ready(function(){ $(function() { //jq事件 }); }); 更新 ……ready載入太玄學了,測試3/10的
vue.js和angular雙向資料繫結的實現原理
一、vue雙向資料繫結 1、原理 資料劫持: vue.js 是採用資料劫持結合釋出者-訂閱者模式的方式,通過Object.defineProperty()來劫持各個屬性的setter,getter,在資料變動時釋出訊息給訂閱者,觸發相應的監聽回撥。 2、實現步驟 要實現mv
「Vue.js」Vue-Router + Webpack 路由懶載入實現
一.前言 當打包構建應用時,Javascript 包會變得非常大,影響頁面載入。如果我們能把不同路由對應的元件分割成不同的程式碼塊,然後當路由被訪問的時候才載入對應元件,這樣就更加高效了。結合 Vue 的非同步元件和 Webpack 的程式碼分割功能,輕鬆實現路由元件的懶載入.
vue.js和laravel使用vue-bootstrap-pagination外掛分頁
前端使用的是vue.js後端使用的是laravel獲取到介面的資料, vue-bootstrap-pagination所需要的資料格式記錄一下; <div class='col-lg-5'> <table class="table