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

資訊專欄INFORMATION COLUMN

webpack4+vue2+axios+vue-router的多頁(yè)+單頁(yè)混合應(yīng)用框架

whatsns / 2363人閱讀

摘要:適用于主要入口頁(yè)面生成多頁(yè),子頁(yè)面和次要頁(yè)面使用單頁(yè)形式的項(xiàng)目。文件用來存放固定的數(shù)據(jù),而文件可更加自由的處理并返回?cái)?shù)據(jù)。

VUE2的單頁(yè)應(yīng)用框架有人分享了,多頁(yè)應(yīng)用框架也有人分享了,這里分享一個(gè)單頁(yè)+多頁(yè)的混合應(yīng)用框架吧,node.js寫了一個(gè)簡(jiǎn)單的mock服務(wù)也集成在里面,整體初現(xiàn)雛形,還有很多需要優(yōu)化和改善的地方。。。

項(xiàng)目結(jié)構(gòu)
│
├─build                             /* webpack的配置目錄 */
│     ├─config.js                   /* 公共常量,用于配置文件 */
│     ├─utils.js                    /* 工具函數(shù),用于配置文件 */
│     ├─webpack.base.conf.js        /* 公共配置文件 */
│     ├─webpack.dev.conf.js         /* 開發(fā)環(huán)境配置文件 */
│     └─webpack.prod.conf.js        /* 生產(chǎn)環(huán)境配置文件 */
│
├──mock                             /* mock服務(wù)和mock數(shù)據(jù) */
│    ├─api                          /* 存放mock數(shù)據(jù) */
│    └─mock-server.js               /* mock服務(wù) */
│
├──src                              /* 項(xiàng)目源碼 */
│    │
│    ├─api                          /* 所有后端接口 */
│    │  ├──index.js
│    │  └──product.js
│    │
│    ├─assets                       /* 公共的靜態(tài)文件 */
│    │  ├─fonts
│    │  ├─img
│    │  └─style
│    │
│    ├─utils                        /* 業(yè)務(wù)無關(guān)的工具函數(shù) */
│    │
│    ├─common                       /* 業(yè)務(wù)相關(guān)的公共函數(shù) */
│    │      config.js
│    │      http.js
│    │
│    ├─components                   /* 公共組件, 如Dialog、Loading等 */
│    │  └─navbar
│    │
│    ├─pages                        /*  頁(yè)面
│    │  │
│    │  ├─index/                        每個(gè)頁(yè)面一個(gè)文件夾,當(dāng)前頁(yè)面的樣式、圖片、子組件都存放在自已的文件夾下。
│    │  │                               為了項(xiàng)目結(jié)構(gòu)清晰,一級(jí)目錄以模塊劃分,二級(jí)目錄則為頁(yè)面目錄。
│    │  ├─my/                       */
│    │  │  └─order/
│    │  │
│    │  ├─product/
│    │  │   └─list/
│    │  │
│    │  ├─App.vue                   /* 多頁(yè)應(yīng)用的公共入口頁(yè)面 */
│    │  │
│    │  └─main.js                   /* 多頁(yè)應(yīng)用的公共入口函數(shù) */
│    │
│    ├─router                       /* 路由配置 */
│    │      router.js
│    │
│    └─store                        /* 狀態(tài)管理 */
│       │  actions.js
│       │  getters.js
│       │  index.js
│       │  mutation-types.js
│       │  mutations.js
│       │
│       └─modules
│
├─── .babelrc                       /* babel配置 */
├─── .editorconfig                  /* 開發(fā)工具配置 */
├─── index.html                     /* 公共模板文件 */
├─── package.json                   /* 包描述文件 */
└─── postcss.config.js              /* postcss相關(guān)插件配置 */
項(xiàng)目簡(jiǎn)介

一個(gè)集 多頁(yè)應(yīng)用 + 單頁(yè)應(yīng)用 的混合項(xiàng)目框架。

適用于主要入口頁(yè)面生成多頁(yè),子頁(yè)面和次要頁(yè)面使用單頁(yè)形式的項(xiàng)目。

技術(shù)棧

ES6+

Vue2.0

Vuex

Vue-Router

Axios

Webpack4

?

項(xiàng)目打包說明

npm模塊(vue、vuex之類)打包成一個(gè)多帶帶的js文件

公共組件和公共函數(shù)打包成一個(gè)多帶帶的js文件

單頁(yè)和多頁(yè),都按頁(yè)面打包,即每個(gè)頁(yè)面組件都打包成多帶帶的js文件,按需加載

公共樣式和各頁(yè)面樣式均各自打包成多帶帶的css文件

如何配置多頁(yè)?

"多頁(yè)面"根據(jù)添加一個(gè)簡(jiǎn)單的入口文件(entry.js)即可自動(dòng)生成html頁(yè)面。

打包時(shí),自動(dòng)遍歷"/src/pages/"目錄,查找所有目錄下的"entry.js"文件,

每個(gè)"entry.js"文件都作為一個(gè)多帶帶的打包入口,每個(gè)入口生成多帶帶的.html文件

多入口配置

在需要生成多帶帶html頁(yè)面的目錄下新建一個(gè)entry.js文件,并引入一個(gè)公共的入口js文件 /src/pages/main.js

給公共入口函數(shù)傳遞一個(gè)當(dāng)前html頁(yè)面默認(rèn)要展示的頁(yè)面組件。

入口示例

entry.js 入口文件,只需要修改要加載的頁(yè)面組件即可,比如此例中的 ./list.vue

//導(dǎo)入公共入口文件 (必須)
import main from "@/pages/main"

//默認(rèn)加載的頁(yè)面組件 (必須)
import List from "./list.vue"

//傳遞一個(gè)要展示的頁(yè)面組件給公共入口函數(shù) (必須)
main.init(List)

?

html模板

一個(gè)打包入口對(duì)應(yīng)一個(gè)html模板。

所有頁(yè)面默認(rèn)使用項(xiàng)目根目錄下的 /index.html 作為模板。

如果某個(gè)頁(yè)面需要多帶帶的html模板,可在其目錄下新建名為 entry.html 的文件,打包時(shí)會(huì)自動(dòng)將其識(shí)別為當(dāng)前頁(yè)面的模板。

注:只有在有入口文件(entry.js)的目錄下添加多帶帶的html模板,才有效。

?

單頁(yè)配置

根據(jù) vue-router 插件的路由配置 (./router/router.js) 來生成單頁(yè)js文件。

每個(gè)html頁(yè)面都是共用的同一個(gè)路由配置 (router.js文件) ,因此單頁(yè)的頁(yè)面組件可渲染在任意一個(gè)html中。

?

插件說明

此示例中沒有使用 Generator函數(shù)async/await,所以排除了對(duì)應(yīng)的babel插件,打包文件也小了20幾Kb,

如果你需要它們,可以在 .babelrc 文件中去掉排除項(xiàng)。

所用插件在package.json文件中可查看,具體插件功能及配置可到插件的npm包主頁(yè)查看

?

安裝插件
npm install
or
yarn install
開發(fā)&打包

執(zhí)行以下命令預(yù)覽非常簡(jiǎn)單的demo

//啟動(dòng) Web 開發(fā)服務(wù)器與 Mock 服務(wù)器
npm start

//構(gòu)建生產(chǎn)文件
npm run build

?

mock數(shù)據(jù)服務(wù) 概述

所有mock文件直接放在 ./api 目錄的根目錄下。(不支持子目錄,可自行修改mock-server.js來實(shí)現(xiàn))

mock文件名必須和接口文件名一致,才能將請(qǐng)求接口匹配上mock文件。

mock文件可以是 .js 文件或 .jso 文件,如果對(duì)同一接口分別創(chuàng)建了js和json兩個(gè)mock文件,會(huì)優(yōu)先取js文件的數(shù)據(jù)。

json文件用來存放固定的mock數(shù)據(jù),而js文件可更加自由的處理并返回mock數(shù)據(jù)。

修改api目錄下的mock文件后,無需重啟node服務(wù),重新調(diào)用接口會(huì)返回新的數(shù)據(jù)。

啟動(dòng)mock服務(wù)

有兩種方式:

1、執(zhí)行命令 npm start 啟動(dòng)當(dāng)前項(xiàng)目時(shí),會(huì)自動(dòng)啟動(dòng)mock服務(wù)(此為默認(rèn)方式,在package.json中配置)。

$ npm start

2、手動(dòng)執(zhí)行node服務(wù)文件 ./mock/mock-server.js

$ node ./mock/mock-server.js
項(xiàng)目中使用mock接口

在配置文件 /build/webpack.dev.conf 中,使用webpack插件 webpack-dev-server 的代理屬性 (proxy) ,將接口服務(wù)器轉(zhuǎn)發(fā)到mock服務(wù)器。

mock服務(wù)器接收到轉(zhuǎn)發(fā)過來的請(qǐng)求后,截取URL請(qǐng)求路徑中的接口名,再用API接口的名字去匹配 ./mock/api 目錄下的mock文件名,
最終返回mock文件中的數(shù)據(jù)。

mock文件命名規(guī)則

mock文件名必須和接口文件名一致

例1:

如果接口為 "/service/user/getUserInfo"

則mock數(shù)據(jù)文件名為 "getUserInfo.js" 或者 "getUserInfo.json"

例2:

如果接口為 "/service/user/getUserInfo.do"

則mock數(shù)據(jù)文件名為 "getUserInfo.do.js" 或者 "getUserInfo.do.json"

mock文件編寫規(guī)則

API接口名.json 文件只支持json格式的數(shù)據(jù),例:

{
  "code": 1,
  "msg": "失敗",
  "data":{
      "age": 520,
      "card": 10099
  },
  "servertime": 1534835882204
}

API接口名.js 文件必須導(dǎo)出一個(gè)函數(shù),函數(shù)接收兩個(gè)參數(shù),需在函數(shù)中返回mock數(shù)據(jù),例:

/*
    返回mock數(shù)據(jù)

    @param {object} getData  接口的GET數(shù)據(jù)
    @param {object} postData 接口的POST數(shù)據(jù)
 */
module.exports = function(getData, postData) {
  //to do something...

  return {
    code: 0,
    msg: "成功"
    data: {}
  }
}

?

最后,框架源碼地址:https://github.com/ahbool/vue-mix-pages,歡迎 +Star

demo很爛,將就著看吧 !-_-

在使用過程中如果發(fā)現(xiàn)有待優(yōu)化的地方或者好的建議,歡迎提出。。。

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

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

相關(guān)文章

  • 前方來報(bào),八月最新資訊--關(guān)于vue2&3的最佳文章推薦

    摘要:哪吒別人的看法都是狗屁,你是誰只有你自己說了才算,這是爹教我的道理。哪吒去他個(gè)鳥命我命由我,不由天是魔是仙,我自己決定哪吒白白搭上一條人命,你傻不傻敖丙不傻誰和你做朋友太乙真人人是否能夠改變命運(yùn),我不曉得。我只曉得,不認(rèn)命是哪吒的命。 showImg(https://segmentfault.com/img/bVbwiGL?w=900&h=378); 出處 查看github最新的Vue...

    izhuhaodev 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    sutaking 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    khs1994 評(píng)論0 收藏0
  • vue服務(wù)端渲染demo將vue-cli生成的項(xiàng)目轉(zhuǎn)為ssr

    摘要:無需使用服務(wù)器實(shí)時(shí)動(dòng)態(tài)編譯,而是使用預(yù)渲染方式,在構(gòu)建時(shí)簡(jiǎn)單地生成針對(duì)特定路由的靜態(tài)文件。與可以部署在任何靜態(tài)文件服務(wù)器上的完全靜態(tài)單頁(yè)面應(yīng)用程序不同,服務(wù)器渲染應(yīng)用程序,需要處于運(yùn)行環(huán)境。更多的服務(wù)器端負(fù)載。 目錄結(jié)構(gòu) -no-ssr-demo 未做ssr之前的項(xiàng)目代碼用于對(duì)比 -vuecli2ssr 將vuecli生成的項(xiàng)目轉(zhuǎn)為ssr -prerender-demo 使用prer...

    whinc 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<