国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Vue快速開發(fā)單頁應(yīng)用-主體結(jié)構(gòu)

dcr309duan / 2845人閱讀

摘要:本文以及后面相應(yīng)文章,主要是相關(guān)技術(shù)棧來快速的實(shí)現(xiàn)單頁應(yīng)用開發(fā)。原文出處其他使用快速開發(fā)單頁應(yīng)用主體結(jié)構(gòu)使用快速開發(fā)單頁應(yīng)用使用快速開發(fā)單頁應(yīng)用登錄頁面使用快速開發(fā)單頁應(yīng)用功能組件與路由組件通信

本文所涉及代碼全在vue-cnode

單頁應(yīng)用,即在一個(gè)頁面集成系統(tǒng)中所有功能,整個(gè)應(yīng)用只有一個(gè)頁面。因?yàn)槁酚傻目刂圃谇岸耍瑔雾撁鎽?yīng)用在頁面切換時(shí)比傳統(tǒng)頁面更快,從而在前端體驗(yàn)更好。

將邏輯從后端轉(zhuǎn)移到前端,提升了性能減少了頁面加載時(shí)間,前后邏輯更扁平。但是當(dāng)頁面復(fù)雜度變高時(shí),你會(huì)發(fā)現(xiàn),數(shù)據(jù)處理,UI交互將變得難以維護(hù),所以應(yīng)運(yùn)而生,出現(xiàn)了很多MV框架和類庫。Vue就是其中之一,個(gè)人覺得(非喜勿噴)Vue類庫相對于其他MV框架上整體的api更為簡潔,提供的api很平衡,解決了問題的同時(shí),沒有增加復(fù)雜度。另外個(gè)人覺得vue在大型應(yīng)用,開發(fā)中使用vue-loader將組件分成template,style,script結(jié)構(gòu)更為清晰。

本文以及后面相應(yīng)文章,主要是vue相關(guān)技術(shù)棧來快速的實(shí)現(xiàn)單頁應(yīng)用開發(fā)。系列文章將以一個(gè)實(shí)際項(xiàng)目進(jìn)行講解,項(xiàng)目的github地址為:

vue-cnode demo

這是一個(gè)以cnodejs.org提供的api來開發(fā)的單頁,主要使用的modules有vue、vue-router、vuex、vue-resource。為了快速開發(fā),我們還使用了vue-cli腳手架工具,下文會(huì)做介紹。

vue-cli

自從node的興起,前端項(xiàng)目中就開始出現(xiàn)各種預(yù)處理工具,當(dāng)我們開始一個(gè)新項(xiàng)目時(shí),我們都會(huì)先編寫一些預(yù)處理文件,和構(gòu)建項(xiàng)目目錄。

而vue-cli就是為了做這方面工作的,生成一套提前定義好的構(gòu)建文件,和相應(yīng)的文件。

vue-cli有5個(gè)對應(yīng)的項(xiàng)目結(jié)構(gòu)。我們使用的是vue-webpack-boilerplate。

$ npm install -g vue-cli
$ vue init webpack my-project
$ cd my-project
$ npm install
$ npm run dev

執(zhí)行上面命令后,我們將生成下面的文件結(jié)構(gòu),并開一個(gè)服務(wù),你可以打開http://localhost:8080看看。

具體的使用建議看文檔。

項(xiàng)目結(jié)構(gòu)

如果你之前就了解vue和vue-router,可以先看這部分。如果你了解vue不了解vue-router,可以先看這篇文章vue-router。如果你連vue都不是很理解我建議,抽5個(gè)小時(shí)左右把文檔教程過一遍。

你可以看到項(xiàng)目根目錄下面有一個(gè)html,僅有的一個(gè)html。

上圖的結(jié)構(gòu)是我自己琢磨的,主要是結(jié)合vue-router、vuex兩使用方法來考慮的。另外對于組件的復(fù)用,將一些功能組件和全局組件都放在根部,通過vuex來控制組件屬性實(shí)現(xiàn)一些功能。

下面我就結(jié)構(gòu)由上至下的介紹。

main.js

main.js 是我們的入口文件,主要作用是初始化vue實(shí)例并使用需要的插件。

import Vue from "vue"
import App from "./App"
import VueRouter from "vue-router"
import VueResource from "vue-resource"
import filter from "./filter"
import store from "./vuex/store"
import { sync } from "vuex-router-sync"
import { configRouter } from "./config_router"
import resourceGlobalSet from "./resource_set"

Vue.use(VueResource)
Vue.use(VueRouter)
// 初始化自定義過濾器
Vue.use(filter)

const router = new VueRouter({
  history: true,
  saveScrollPosition: true
})
configRouter(router)
Vue.http.options.emulateJSON = true
Vue.http.interceptors.push(resourceGlobalSet) // ajax 攔截

sync(store, router)
router.start(App, "app")

就如同上面所示,主要是使用和配置相應(yīng)插件,并初始化一個(gè)vue,上面的初始化在router.start(App, "app"),是以App.vue為組要組件,并以html中的為掛載替換點(diǎn)。

APP.vue

App.vue是我們的主組件,所有頁面都是在App.vue下進(jìn)行切換的。其實(shí)你也可以理解為所有的路由也是App.vue的子組件。所以我將router標(biāo)示為App.vue的子組件。

下面是App.vue的template

你可以看到route-view和其它全局功能組件,全局組件在一個(gè)層級。

另外由于APP.vue在所有頁面都有,我們將會(huì)在APP.vue上面寫一些初始化全局方法。

router

router 是具體的業(yè)務(wù)組件,比如index,login,content等組件都是具體業(yè)務(wù)相關(guān)的。下面就是再和業(yè)務(wù)相關(guān)的組件。

全局組件

全局組件是頁面共用的部分,比如header,footer,navbar,你可能在想如果我有一些header是獨(dú)特的怎么辦,這種情況下可以通過路由做判斷,渲染不同的html,如果判斷條件不是路由,也可以在vuex寫一個(gè)store記錄組件的state。

功能組件

功能組件是比如dialog,tip等組件,是用來與用戶交互的。

通常情況下,功能組件是各個(gè)組件都需要的一些組件。在一個(gè)頁面里如果有兩個(gè)組件,兩個(gè)組件都同時(shí)引了一個(gè)tip組件作為子組件是純在的。為了避免這種情況,我們將功能組件提到App.vue然后通過vuex進(jìn)行組件交互,從而就講一個(gè)功能組件變成了全局方法。

自定義插件

vue還能自己寫插件。對于一些公用的方法和邏輯,我們可以提出來寫在插件里面。

小節(jié)

可以看到,我們項(xiàng)目整體結(jié)構(gòu)非常清晰。入口加載初始化,主組件掛載路由全局控制,然后全局組件、功能組件借助vuex進(jìn)行數(shù)據(jù)控制。

原文出處: http://hiluluke.cn/2016/08/04...

其他

使用Vue快速開發(fā)單頁應(yīng)用-主體結(jié)構(gòu)

使用Vue快速開發(fā)單頁應(yīng)用-vue-router

使用Vue快速開發(fā)單頁應(yīng)用-登錄頁面

使用Vue快速開發(fā)單頁應(yīng)用-功能組件與路由組件通信

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/80174.html

相關(guān)文章

  • 使用Vue快速開發(fā)單頁應(yīng)用-功能組件與路由組件通信

    摘要:展示信息展示時(shí)間結(jié)束后,執(zhí)行回調(diào)函數(shù)如果有上面就完成了組件的整套邏輯,最后我們還需要把組件掛在。原文鏈接其他使用快速開發(fā)單頁應(yīng)用主體結(jié)構(gòu)使用快速開發(fā)單頁應(yīng)用使用快速開發(fā)單頁應(yīng)用登錄頁面使用快速開發(fā)單頁應(yīng)用功能組件與路由組件通信 本文所涉及代碼全在vue-cnode showImg(https://segmentfault.com/image?src=http://7fvhwe.com1...

    KitorinZero 評論0 收藏0
  • 使用Vue快速開發(fā)單頁應(yīng)用vue-router

    摘要:當(dāng)前路由對象調(diào)用此函數(shù)處理切換過程的下一步終止切換重定向到另一個(gè)路由由于是路由切換后,只有上面的兩個(gè)屬性。原文地址其他使用快速開發(fā)單頁應(yīng)用主體結(jié)構(gòu)使用快速開發(fā)單頁應(yīng)用使用快速開發(fā)單頁應(yīng)用登錄頁面使用快速開發(fā)單頁應(yīng)用功能組件與路由組件通信 本文所涉及代碼全在vue-cnode vue-router主要作用是將路由控制,轉(zhuǎn)移到前端。我們將會(huì)在vue-router里面保存一個(gè)路由表,在vue...

    mingde 評論0 收藏0
  • 使用Vue快速開發(fā)單頁應(yīng)用-登錄頁面

    摘要:首先我們從登錄頁面以及開始,因?yàn)楹罄m(xù)很多其它的頁面都需要登錄信息。大家還是看看我這做個(gè)指引,具體還是看代碼原文地址其他使用快速開發(fā)單頁應(yīng)用主體結(jié)構(gòu)使用快速開發(fā)單頁應(yīng)用使用快速開發(fā)單頁應(yīng)用登錄頁面使用快速開發(fā)單頁應(yīng)用功能組件與路由組件通信 本文所涉及代碼全在vue-cnode 前面兩篇都是介紹組織結(jié)構(gòu)和vue-router,從本文開始我們將講一些如何優(yōu)雅的用vue編寫單頁應(yīng)用。首先我們從...

    yeyan1996 評論0 收藏0
  • 一套Vue單頁模板:N3-admin

    摘要:趁著周末偷來一點(diǎn)閑,總結(jié)近期的工作和學(xué)習(xí),想著該花點(diǎn)心思把這套基于的單頁應(yīng)用模板簡單的給介紹一下。同時(shí)也是一套可擴(kuò)展的單頁應(yīng)用開發(fā)模板。 趁著周末偷來一點(diǎn)閑,總結(jié)近期的工作和學(xué)習(xí),想著該花點(diǎn)心思把N3-admin這套基于N3-components的單頁應(yīng)用模板簡單的給介紹一下。 首發(fā)于個(gè)人博客;blog.lxstart.net項(xiàng)目路徑: https://github.com/N3-co...

    CloudDeveloper 評論0 收藏0
  • 一套Vue單頁模板:N3-admin

    摘要:趁著周末偷來一點(diǎn)閑,總結(jié)近期的工作和學(xué)習(xí),想著該花點(diǎn)心思把這套基于的單頁應(yīng)用模板簡單的給介紹一下。同時(shí)也是一套可擴(kuò)展的單頁應(yīng)用開發(fā)模板。 趁著周末偷來一點(diǎn)閑,總結(jié)近期的工作和學(xué)習(xí),想著該花點(diǎn)心思把N3-admin這套基于N3-components的單頁應(yīng)用模板簡單的給介紹一下。 首發(fā)于個(gè)人博客;blog.lxstart.net項(xiàng)目路徑: https://github.com/N3-co...

    weizx 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<