亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

從零開(kāi)始搭建一個(gè)vue項(xiàng)目 -- vue-cli/cooking-cli(二)

0xE7A38A / 2409人閱讀

從零開(kāi)始搭建一個(gè)vue項(xiàng)目 -- vue-cli/cooking-cli(二) 1.配置圖片路徑



圖片的路徑有多種方法,第一種是直接把圖片放在根目錄的 static 文件夾下,引入的路徑是

/staic/img

,這種方法的缺點(diǎn)在于webpack不會(huì)識(shí)別根目錄,所以發(fā)布的時(shí)候需要手動(dòng)把圖片文件夾添加進(jìn)去

第二種方法是配置webpack, 在/build/webpack.base.conf.js文件中有一行代碼

這里可以配置webpack的路徑,在 alias 選項(xiàng)添加一下圖片的路徑,修改為

resolve: {
    extensions: [".js", ".vue", ".json"],
    alias: {
      "vue$": "vue/dist/vue.esm.js",
      "@": resolve("src"),
      "assets": path.resolve(__dirname, "../src/assets") // 后面的參數(shù)就是靜態(tài)文件目錄
    }
}

頁(yè)面中就可以直接使用 ~assets/img 的路徑引入靜態(tài)文件,并且可以被webpack檢測(cè)到,并且自動(dòng)打包

還有一種方法就是相對(duì)路徑,這里不做講解

如果圖片路徑寫(xiě)在data里面,沒(méi)有正常打包的話(huà),可以修改代碼為require("xxx")

vue-cli的webpack配置,默認(rèn)10kb以下的圖片會(huì)自動(dòng)轉(zhuǎn)化為base64位格式的圖片,所以這里我們也可以配置一下,還是上面這個(gè)文件,在下面,有一個(gè)參數(shù),如下圖

這里可以配置最小參數(shù),假如配置為0的話(huà),就不會(huì)轉(zhuǎn)化base64位圖片,當(dāng)然你也可以設(shè)置更高的值,比如50kb。

2.配置路由(vue-router)

vue-router

這里我們來(lái)配置一個(gè)json控制的路由,先做到二級(jí)子路由,以后考慮遞歸來(lái)處理三級(jí)路由

我們先來(lái)創(chuàng)建幾個(gè)組件,來(lái)配置我們的路由,在src文件夾下新建一個(gè)pages目錄,用于存放我們的頁(yè)面組件,而自帶的components,今后用來(lái)存放小組件,例如button。

文件目錄最后應(yīng)該是這樣的,先看看文件目錄,然后再來(lái)講解每個(gè)文件,現(xiàn)在項(xiàng)目結(jié)構(gòu)是這樣的

我們創(chuàng)建了四個(gè)目錄,分別是foo bar home parent,我直接用 parent 來(lái)講解一下

parent
├── parent.vue                        - parent組件
├── index.js                              - 用于導(dǎo)出,并且命名導(dǎo)出的文件
│   ├── components                       - 存放parent的子組件

parent.vue





index.js

export const parent = r => require.ensure([], () => r(require("./parent.vue")), "parent"); 
// 這里有三個(gè)parent,分別是導(dǎo)出的模塊名(可直接操作的組件),導(dǎo)出的路徑,導(dǎo)出的名稱(chēng)(打包時(shí)的名稱(chēng),在后面會(huì)有講解)
export * from "./components";//將父元素關(guān)聯(lián)的子元素的路徑export

現(xiàn)在用同樣的方法,把其他四個(gè)文件都導(dǎo)出一下,最后在pages/index.js中全部導(dǎo)出

export * from "./home"; //首頁(yè)入口
export * from "./foo"; 
export * from "./bar"; 
export * from "./parent"; 

進(jìn)入router文件夾,新建一個(gè)文件,router.json,用于存放我們的路由配置,注意json文件中不能添加注釋?zhuān)⑶腋袷接邢拗?/p>

[
  {
    "path": "/home", // 路徑可隨意配置
    "component": "home", // 這里的組件名對(duì)應(yīng)上面導(dǎo)出的組件名
    "name": "home" // 這個(gè)名稱(chēng)也可配
  },
  {
    "path": "/parent",
    "component": "parent",
    "children": [
      {
      "path": "child", 
      "component": "child",
      "name": "child"
      }
    ]
  },
  {
    "path": "/foo",
    "component": "foo",
    "name": "foo"
  },
  {
    "path": "/bar",
    "component": "bar",
    "name": "bar"
  }
]

然后我們把 router 文件夾的index.js改寫(xiě)一下,把我們的json導(dǎo)入

import Vue from "vue";
import VueRouter from "vue-router";

import * as page from "../pages"; // 這里可以把我們上面的組件全部重新導(dǎo)入
Vue.use(VueRouter);

import NavConfig from "./router.json"; //導(dǎo)入我們的json

// 返回一個(gè)新的路由配置
const getChild = (component) => {
    return {
        path:component.path,
        component:page[component.component],
        name:component.name,
        children:component.children || []
    }
}

// 使用json生成全新的route
const registerRoute = (config,parent) => {
    let route = [{
        "path": "/",
        "redirect": "/home" 
    }];
    config.forEach(child => {
        if (child.children && child.children.length > 0) {
            child.children = child.children.map(item => getChild(item));
        }
        route.push(getChild(child));
    });
    return route;
}

const routes = registerRoute(NavConfig);

const router = new VueRouter({
    routes
});

export default router;

這個(gè)時(shí)候假如需要新增一個(gè)路由,只需要修改router.json文件即可(記得在pages導(dǎo)出模塊,否則會(huì)報(bào)錯(cuò))

還有第三章,待續(xù)。

一個(gè)團(tuán)結(jié)互助的討論組,專(zhuān)注前端三十年!


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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/83265.html

相關(guān)文章

  • 從零開(kāi)始搭建一個(gè)vue項(xiàng)目 -- vue-cli/cooking-cli(一)

    摘要:從零開(kāi)始搭建一個(gè)項(xiàng)目一搭建一個(gè)可靠成熟的項(xiàng)目介紹我是去年六月份接觸的,當(dāng)時(shí)還是個(gè)菜逼,當(dāng)然現(xiàn)在也是,寫(xiě)了一年,抄代碼的時(shí)候一直是,在別人的框架基礎(chǔ)上開(kāi)發(fā),然后漸漸發(fā)現(xiàn)很多的模板都各有優(yōu)點(diǎn),所以慢慢的開(kāi)始集合到了一起。 從零開(kāi)始搭建一個(gè)vue項(xiàng)目 -- vue-cli/cooking-cli(一) 1.vue-cli搭建一個(gè)可靠成熟的項(xiàng)目 1.介紹 vue-cli 我是去年六月...

    rainyang 評(píng)論0 收藏0
  • 從零開(kāi)始搭建React同構(gòu)應(yīng)用():瀏覽器端工程化

    摘要:從零開(kāi)始搭建同構(gòu)應(yīng)用二項(xiàng)目工程化瀏覽器端在從零開(kāi)始同構(gòu)開(kāi)發(fā)一中我們已經(jīng)能實(shí)現(xiàn)基本的配置和編譯了。接下來(lái)我們需要將編譯工作工程化。配置作用自動(dòng)生成自動(dòng)在引入,。文件內(nèi)容如下同構(gòu)開(kāi)發(fā)配置自動(dòng)刷新這里我們用到的修飾器特性。 從零開(kāi)始搭建React同構(gòu)應(yīng)用(二) 項(xiàng)目工程化(瀏覽器端) 在從零開(kāi)始React同構(gòu)開(kāi)發(fā)(一)中我們已經(jīng)能實(shí)現(xiàn)基本的React配置和編譯了。接下來(lái)我們需要將編譯工作工程...

    wwq0327 評(píng)論0 收藏0
  • 從零開(kāi)始搭建一個(gè)vue-ssr(下)

    摘要:開(kāi)始改建補(bǔ)充安裝依賴(lài)與上一次不同,這次我們基于進(jìn)行改建,已經(jīng)有了很多依賴(lài)庫(kù)了,但我們?nèi)涡枰a(bǔ)充一個(gè)核心修改客戶(hù)端的配置修改文件,添加插件添加了這個(gè)配置以后,重新啟動(dòng)項(xiàng)目通過(guò)地址就可以訪問(wèn)到,頁(yè)面中出現(xiàn)的內(nèi)容就是所需要的。 從零開(kāi)始搭建一個(gè)vue-ssr 前言 上次我們已經(jīng)實(shí)現(xiàn)了從零開(kāi)始,搭建一個(gè)簡(jiǎn)單的vue-ssr的demo:從零開(kāi)始搭建一個(gè)vue-ssr(上)。那么這次呢,我們基于v...

    Jochen 評(píng)論0 收藏0
  • 第一集: 從零開(kāi)始實(shí)現(xiàn)一套pc端vue的ui組件庫(kù)(環(huán)境的搭建)

    摘要:第一集從零開(kāi)始實(shí)現(xiàn)環(huán)境的搭建工程定位本套工程定位在端針對(duì)的組件庫(kù)名字的由來(lái)是我從年養(yǎng)到現(xiàn)在的一直大金毛是我的吉祥物原因本人上一份工作參與了大型的保險(xiǎn)公司后臺(tái)管理系統(tǒng)的搭建對(duì)的端框架有過(guò)一定的了解感受到了他們真的很強(qiáng)大同時(shí)也存在少許的不足其實(shí) 第一集: 從零開(kāi)始實(shí)現(xiàn)(環(huán)境的搭建) 工程定位: 本套工程, 定位在pc端針對(duì)vue的ui組件庫(kù) 名字的由來(lái) cc是我從2015年養(yǎng)到現(xiàn)在的...

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

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

0條評(píng)論

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