欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue使用pages構(gòu)建多頁應(yīng)用的實現(xiàn)步驟

 更新時間:2024年12月29日 11:31:30   作者:Nejosi_念舊  
在大部分實際場景中,我們都可以構(gòu)建單頁應(yīng)用來進(jìn)行項目的開發(fā)和迭代,然而對于項目復(fù)雜度過高或者頁面模塊之間差異化較大的項目,我們可以選擇構(gòu)建多頁應(yīng)用來實現(xiàn),那么什么是多頁應(yīng)用,本文就給大家介紹了Vue使用pages構(gòu)建多頁應(yīng)用的實現(xiàn)步驟

概念

首先我們可以把多頁應(yīng)用理解為由多個單頁構(gòu)成的應(yīng)用,而何謂多個單頁呢?其實你可以把一個單頁看成是一個 html 文件,那么多個單頁便是多個 html 文件,多頁應(yīng)用便是由多個 html 組成的應(yīng)用,如下圖所示:

既然多頁應(yīng)用擁有多個 html,那么同樣其應(yīng)該擁有多個獨立的入口文件、組件、路由、vuex 等。沒錯,說簡單一點就是多頁應(yīng)用的每個單頁都可以擁有單頁應(yīng)用 src 目錄下的文件及功能,我們來看一下一個基礎(chǔ)多頁應(yīng)用的目錄結(jié)構(gòu):

├── node_modules               # 項目依賴包目錄
├── build                      # 項目 webpack 功能目錄
├── config                     # 項目配置項文件夾
├── src                        # 前端資源目錄
│   ├── images                 # 圖片目錄
│   ├── components             # 公共組件目錄
│   ├── pages                  # 頁面目錄
│   │   ├── page1              # page1 目錄
│   │   │   ├── components     # page1 組件目錄
│   │   │   ├── router         # page1 路由目錄
│   │   │   ├── views          # page1 頁面目錄
│   │   │   ├── page1.html     # page1 html 模板
│   │   │   ├── page1.vue      # page1 vue 配置文件
│   │   │   └── page1.js       # page1 入口文件
│   │   ├── page2              # page2 目錄
│   │   └── index              # index 目錄
│   ├── common                 # 公共方法目錄
│   └── store                  # 狀態(tài)管理 store 目錄
├── .gitignore                 # git 忽略文件
├── .env                       # 全局環(huán)境配置文件
├── .env.dev                   # 開發(fā)環(huán)境配置文件
├── .postcssrc.js              # postcss 配置文件
├── babel.config.js            # babel 配置文件
├── package.json               # 包管理文件
├── vue.config.js              # CLI 配置文件
└── yarn.lock                  # yarn 依賴信息文件

根據(jù)上方目錄結(jié)構(gòu)我們可以看出其實 pages 下的一個目錄就是一個單頁包含的功能,這里我們包含了 3 個目錄就構(gòu)成了多頁應(yīng)用。

除了目錄結(jié)構(gòu)的不同外,其實區(qū)別單頁應(yīng)用,多頁應(yīng)用在很多配置上都需要進(jìn)行修改,比如單入口變?yōu)槎嗳肟?、單模板變?yōu)槎嗄0宓?,那么下面我們就來了解一下多頁?yīng)用的具體實現(xiàn)。

多入口

在單頁應(yīng)用中,我們的入口文件只有一個,Vue CLI 默認(rèn)配置的是 main.js,但是到了多頁應(yīng)用,我們的入口文件便包含了 page1.js、page2.js、index.js等,數(shù)量取決于 pages 文件夾下目錄的個數(shù),這時候為了項目的可拓展性,我們需要自動計算入口文件的數(shù)量并解析路徑配置到 webpack 中的 entry 屬性上,如:

module.exports = {
    ...
    
    entry: {
        page1: '/xxx/pages/page1/page1.js',
        page2: '/xxx/pages/page2/page2.js',
        index: '/xxx/pages/index/index.js',
    },
    
    ...
}

那么我們?nèi)绾巫x取并解析這樣的路徑呢,這里就需要使用工具和函數(shù)來解決了。我們可以在根目錄新建 build 文件夾存放 utils.js 這樣共用的 webpack 功能性文件,并加入多入口讀取解析方法:

/* utils.js */
const path = require('path');
 
// glob 是 webpack 安裝時依賴的一個第三方模塊,該模塊允許你使用 * 等符號,
// 例如 lib/*.js 就是獲取 lib 文件夾下的所有 js 后綴名的文件
const glob = require('glob');
 
// 取得相應(yīng)的頁面路徑,因為之前的配置,所以是 src 文件夾下的 pages 文件夾
// PAGE_PATH 變量定義了存放頁面文件的路徑
const PAGE_PATH = path.resolve(__dirname, '../src/pages');
 
/* 
* 多入口配置
* 通過 glob 模塊讀取 pages 文件夾下的所有對應(yīng)文件夾下的 js * 后綴文件,如果該文件存在
* 那么就作為入口處理
*/
exports.getEntries = () => {
    //glob.sync 方法同步讀取 PAGE_PATH 下的所有子目錄中的 .js 文件,將匹配到的文件路徑存儲在 entryFiles 數(shù)組中
    let entryFiles = glob.sync(PAGE_PATH + '/*/*.js') 
    let map = {}
    
    // 遍歷所有入口文件,和構(gòu)建入口對象
    entryFiles.forEach(filePath => {
        // 獲取文件名
        let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
        
        // 通過 forEach 遍歷每個文件路徑,提取文件名,并將文件名(不帶擴展名)作為鍵,將文件路徑作為值,構(gòu)建成一個對象 map
        map[filename] = filePath 
    })
    
    return map
}

最終返回的 map 對象包含了所有入口文件的映射關(guān)系,形式如下

 {

        'page1': '/path/to/src/pages/page1/index.js',

         'page2': '/path/to/src/pages/page2/index.js',

        ...

}

在 Webpack 配置中使用 getEntries 獲取入口文件,并配置 entry 屬性:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { getEntries } = require('./utils');
 
module.exports = {
    entry: getEntries(), // 使用 getEntries 方法獲取入口
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: '[name].[contenthash].js', // 依據(jù)入口名稱生成文件
    },
    plugins: Object.keys(getEntries()).map(entry => {
        return new HtmlWebpackPlugin({
            template: path.resolve(__dirname, `../src/pages/${entry}/index.html`), // 根據(jù)頁面生成 HTML
            filename: `${entry}.html`,
            chunks: [entry], // 只引入當(dāng)前入口的 chunk
        });
    }),
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader'
                }
            }
        ]
    },
    optimization: {
        splitChunks: {
            chunks: 'all',
        },
    }
};

上方我們使用了 glob 這一第三方模塊讀取所有 pages 文件夾下的入口文件,其需要進(jìn)行安裝:

yarn add glob --dev

這樣我們多入口的設(shè)置便完成了,當(dāng)然這并不是 CLI 所希望的操作,后面我們會進(jìn)行改進(jìn)。

多模板

相對于多入口來說,多模板的配置也是大同小異,這里所說的模板便是每個 page 下的 html 模板文件,而模板文件的作用主要用于 webpack html-webpack-plugin 插件的配置,其會根據(jù)模板文件生產(chǎn)一個編譯后的 html 文件并自動加入攜帶 hash 的腳本和樣式,基本配置如下:

/* webpack 配置文件 */
const HtmlWebpackPlugin = require('html-webpack-plugin') // 安裝并引用插件
 
module.exports = {
    ...
    
    plugins: [
        new HtmlWebpackPlugin({
            title: 'My Page', // 生成 html 中的 title
            filename: 'demo.html', // 生成 html 的文件名
            template: 'xxx/xxx/demo.html', // 模板路徑
            chunks: ['manifest', 'vendor', 'demo'], // 所要包含的模塊
            inject: true, // 是否注入資源
        })
    ]
    
    ...
}

以上是單模板的配置,那么如果是多模板只要繼續(xù)往 plugins 數(shù)組中添加 HtmlWebpackPlugin 即可,但是為了和多入口一樣能夠靈活的獲取 pages 目錄下所有模板文件并進(jìn)行配置,我們可以在 utils.js 中添加多模板的讀取解析方法:

/* utils.js */
 
// 多頁面輸出配置
// 與上面的多頁面入口配置相同,讀取 page 文件夾下的對應(yīng)的 html 后綴文件,然后放入數(shù)組中
exports.htmlPlugin = configs => {
    let entryHtml = glob.sync(PAGE_PATH + '/*/*.html')
    let arr = []
    
    entryHtml.forEach(filePath => {
        let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
        let conf = {
            template: filePath, // 模板路徑
            filename: filename + '.html', // 生成 html 的文件名
            chunks: ['manifest', 'vendor',  filename],
            inject: true,
        }
        
        // 如果有自定義配置可以進(jìn)行 merge
        if (configs) {
            conf = merge(conf, configs)
        }
        
        // 針對生產(chǎn)環(huán)境配置
        if (process.env.NODE_ENV === 'production') {
            conf = merge(conf, {
                minify: {
                    removeComments: true, // 刪除 html 中的注釋代碼
                    collapseWhitespace: true, // 刪除 html 中的空白符
                    // removeAttributeQuotes: true // 刪除 html 元素中屬性的引號
                },
                chunksSortMode: 'manual' // 按 manual 的順序引入
            })
        }
        
        arr.push(new HtmlWebpackPlugin(conf))
    })
    
    return arr
}

這里解讀一下代碼: 

導(dǎo)出 htmlPlugin 函數(shù):

exports.htmlPlugin = configs => {
    let entryHtml = glob.sync(PAGE_PATH + '/*/*.html');
    let arr = [];
  • htmlPlugin 函數(shù)接收一個可選的 configs 參數(shù),用于自定義配置。
  • 使用 glob.sync 方法讀取 PAGE_PATH 下的所有 HTML 文件,并將路徑存儲在 entryHtml 數(shù)組中。

遍歷 HTML 文件:

entryHtml.forEach(filePath => {
    let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
  • 對每個找到的 HTML 文件進(jìn)行遍歷,提取文件名(去掉路徑和擴展名)。

創(chuàng)建配置對象:

    let conf = {
        template: filePath, // 模板路徑
        filename: filename + '.html', // 生成 HTML 的文件名
        chunks: ['manifest', 'vendor', filename],
        inject: true,
    };
  • conf 對象包含了 HtmlWebpackPlugin 所需的配置信息:
    • template: 指定當(dāng)前 HTML 文件作為模板。
    • filename: 生成的 HTML 文件的名稱。
    • chunks: 指定需要引入的 JS 文件。
    • inject: 設(shè)置為 true,自動注入 JS 文件。

合并自定義配置:

    if (configs) {
        conf = merge(conf, configs);
    }

如果提供了自定義配置 configs,使用 merge 函數(shù)合并配置。

生產(chǎn)環(huán)境配置:

 if (process.env.NODE_ENV === 'production') {
        conf = merge(conf, {
            minify: {
                removeComments: true, // 刪除 HTML 中的注釋代碼
                collapseWhitespace: true, // 刪除 HTML 中的空白符
            },
            chunksSortMode: 'manual' // 按 manual 的順序引入
        });
    }
  • 如果當(dāng)前環(huán)境是生產(chǎn)環(huán)境,合并額外的配置以優(yōu)化輸出的 HTML 文件,例如:
    • minify: 提供 HTML 最小化的選項。
    • chunksSortMode: 指定引入 JS 文件的順序。

推送 HtmlWebpackPlugin 實例到數(shù)組:

arr.push(new HtmlWebpackPlugin(conf));

將每個 HtmlWebpackPlugin 實例推入 arr 數(shù)組中。

以上我們?nèi)匀皇鞘褂?glob 讀取所有模板文件,然后將其遍歷并設(shè)置每個模板的 config,同時針對一些自定義配置和生產(chǎn)環(huán)境的配置進(jìn)行了 merge 處理,其中自定義配置的功能我會在下節(jié)進(jìn)行介紹,這里介紹一下生產(chǎn)環(huán)境下 minify 配置的作用:將 html-minifier 的選項作為對象來縮小輸出。

html-minifier 是一款用于縮小 html 文件大小的工具,其有很多配置項功能,包括上述所列舉的常用的刪除注釋、空白、引號等。

當(dāng)我們編寫完了多模板的方法后,我們同樣可以在 vue.config.js 中進(jìn)行配置,與多入口不同的是我們在 configureWebpack 中不能直接替換 plugins 的值,因為它還包含了其他插件,使用 return 返回一個對象來進(jìn)行 merge 操作

/* vue.config.js */
 
const utils = require('./build/utils')
 
module.exports = {
    ...
    
    configureWebpack: config => {
        config.entry = utils.getEntries() // 直接覆蓋 entry 配置
        
        // 使用 return 一個對象會通過 webpack-merge 進(jìn)行合并,plugins 不會置空
        return {
            plugins: [...utils.htmlPlugin()]
        }
    },
    
    ...
}

如此我們多頁應(yīng)用的多入口和多模板的配置就完成了,這時候我們運行命令 yarn build 后你會發(fā)現(xiàn) dist 目錄下生成了 3 個 html 文件,分別是 index.html、page1.html 和 page2.html。

使用 pages 配置

其實,在 vue.config.js 中,我們還有一個配置沒有使用,便是 pages。pages 對象允許我們?yōu)閼?yīng)用配置多個入口及模板,這就為我們的多頁應(yīng)用提供了開放的配置入口。官方示例代碼如下:

/* vue.config.js */
module.exports = {
pages: {
    index: {
        entry: 'src/index/main.js',
        template: 'public/index.html',
        filename: 'index.html',
        title: 'Index Page',
        chunks: ['chunk-vendors', 'chunk-common', 'index']
    },
    subpage: 'src/subpage/main.js'
}
}
  • 首頁 index 的配置:

    • entry: 指定頁面的入口文件,這里是 src/index/main.js。
    • template: 指定模板文件的路徑,這里是 public/index.html。該模板用于生成最終的 HTML 文件。
    • filename: 指定生成的 HTML 文件的名稱,在構(gòu)建后會輸出到 dist/index.html。
    • title: 設(shè)置頁面的標(biāo)題。在模板文件中,應(yīng)該使用 <title><%= htmlWebpackPlugin.options.title %></title> 來動態(tài)設(shè)置標(biāo)題。
    • chunks: 指定在此頁面中包含的塊,默認(rèn)為提取出來的通用 chunk 和 vendor chunk。這里包括了 chunk-vendors、chunk-common 和 index。
  • 子頁面 subpage 的配置:

    • subpage 使用字符串格式,只指定了入口文件 src/subpage/main.js。在這種情況下,模板文件會默認(rèn)為 public/subpage.html,如果不存在,則回退到 public/index.html。輸出的文件名會被推導(dǎo)為 subpage.html。

我們不難發(fā)現(xiàn),pages 對象中的 key 就是入口的別名,而其 value 對象其實是入口 entry 和模板屬性的合并,這樣我們上述介紹的獲取多入口和多模板的方法就可以合并成一個函數(shù)來進(jìn)行多頁的處理,合并后的 setPages 方法如下:

// pages 多入口配置
exports.setPages = configs => {
    let entryFiles = glob.sync(PAGE_PATH + '/*/*.js')
    let map = {}
 
    entryFiles.forEach(filePath => {
        let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
        let tmp = filePath.substring(0, filePath.lastIndexOf('\/'))
 
        let conf = {
            // page 的入口
            entry: filePath, 
            // 模板來源,這里假設(shè)每個 JS 文件對應(yīng)一個同名的 HTML 文件
            template: tmp + '.html', 
            // 在 dist/index.html 的輸出HTML 文件
            filename: filename + '.html', 
            // 頁面模板需要加對應(yīng)的js腳本,如果不加這行則每個頁面都會引入所有的js腳本
            chunks: ['manifest', 'vendor', filename], 
            inject: true,
        };
 
        if (configs) {
            conf = merge(conf, configs)
        }
 
        if (process.env.NODE_ENV === 'production') {
            conf = merge(conf, {
                minify: {
                    removeComments: true, // 刪除 html 中的注釋代碼
                    collapseWhitespace: true, // 刪除 html 中的空白符
                    // removeAttributeQuotes: true // 刪除 html 元素中屬性的引號
                },
                chunksSortMode: 'manual'// 按 manual 的順序引入
            })
        }
 
        map[filename] = conf
    })
 
    return map
}

上述代碼我們 return 出的 map 對象就是 pages 所需要的配置項結(jié)構(gòu),我們只需在 vue.config.js 中引用即可:

/* vue.config.js */
 
const utils = require('./build/utils')
 
module.exports = {
    ...
    
    pages: utils.setPages(),
    
    ...
}

這樣我們多頁應(yīng)用基于 pages 配置的改進(jìn)就大功告成了,當(dāng)你運行打包命令來查看輸出結(jié)果的時候,你會發(fā)現(xiàn)和之前的方式相比并沒有什么變化,這就說明這兩種方式都適用于多頁的構(gòu)建,但是這里還是推薦大家使用更便捷的 pages 配置。

拓展

1.多頁應(yīng)用相比單頁應(yīng)用有哪些優(yōu)點和缺點? 多頁面應(yīng)用(MPA) 優(yōu)點

SEO友好:

MPA的每個頁面都有獨立的URL,容易被搜索引擎索引,對于需要良好SEO表現(xiàn)的應(yīng)用(如電商網(wǎng)站、博客等)尤為重要。

初次加載速度快:

每個頁面都是獨立的HTML文檔,初始請求時只加載當(dāng)前頁面的資源,因而加載速度通常較快。

簡單的框架:

代碼結(jié)構(gòu)清晰,各頁面相對獨立,適合于大中型團隊的分工開發(fā)。每個頁面可以使用不同的框架或技術(shù)棧。

更好的瀏覽器兼容性:

MPA通常與傳統(tǒng)的網(wǎng)頁架構(gòu)相似,可能對老舊瀏覽器有更好的支持。

易于管理狀態(tài):

由于每個頁面是獨立加載的,不需要管理復(fù)雜的狀態(tài)(如 SPA 中的全局狀態(tài)管理),開發(fā)相對簡單。 缺點

用戶體驗較差:

每次頁面切換都需要重新加載整個頁面,造成明顯的閃爍和延遲,用戶體驗相對較差。

資源加載冗余:

各個頁面可能會重復(fù)加載相同的資源(如 CSS、JS),造成網(wǎng)絡(luò)資源浪費。

復(fù)雜的路由管理:

隨著頁面數(shù)量的增加,管理路由和導(dǎo)航可能會變得復(fù)雜。

開發(fā)效率低:

需要為每個頁面單獨進(jìn)行開發(fā)和維護,可能會影響整體開發(fā)效率。 單頁面應(yīng)用(SPA) 優(yōu)點

更快的用戶體驗:

通過 AJAX 和動態(tài)更新頁面內(nèi)容,用戶在不同頁面間切換時不需要重新加載整個頁面,提供更流暢的體驗。

資源共享:

所有頁面共享相同的資源(如 JS、CSS),減少了加載時間和服務(wù)器請求次數(shù)。

動態(tài)內(nèi)容更新:

SPA可以通過 API 動態(tài)加載數(shù)據(jù),實現(xiàn)更豐富的用戶交互,而無需刷新頁面。

更好的狀態(tài)管理:

使用狀態(tài)管理庫(如 Vuex、Redux)可以集中管理應(yīng)用狀態(tài),適合復(fù)雜的用戶交互。

開發(fā)效率:

可以在同一個頁面中不斷更新內(nèi)容,減少重新加載的需要,提高開發(fā)效率。 缺點

SEO挑戰(zhàn):

SPA的內(nèi)容通常是通過 JavaScript 動態(tài)加載,傳統(tǒng)搜索引擎對這種內(nèi)容的索引能力較弱,可能影響SEO。

首次加載速度慢:

首次訪問時需要加載所有的 JavaScript 和 CSS 資源,可能造成加載時間較長。

復(fù)雜的路由和狀態(tài)管理:

SPA需要處理復(fù)雜的路由和狀態(tài)管理,開發(fā)者需要花費更多時間來設(shè)計和實現(xiàn)。

瀏覽器兼容性:

對于某些老舊的瀏覽器,SPA可能存在兼容性問題,尤其是與新特性相關(guān)的功能。chunksSortMode 除了文中介紹的 manual 手動排序外,還有哪些排序方式? 2.chunksSortMode 除了文中介紹的 manual 手動排序外,還有哪些排序方式?

常見的排序方式

none:

不對 chunks 進(jìn)行排序,保持 Webpack 生成 chunk 的原始順序。

auto:

自動排序,這通常是基于 chunk 的名稱和文件大小進(jìn)行排序。Webpack 會嘗試根據(jù)某種邏輯來決定 chunks 的順序,通常是將較小的 chunk 放在前面。

dependency:

根據(jù) chunks 之間的依賴關(guān)系進(jìn)行排序,確保在某個 chunk 被使用之前,所有它依賴的 chunk 都已經(jīng)加載。

size:

根據(jù) chunk 的大小進(jìn)行排序,較大的 chunk 會被放在后面,較小的 chunk 會被放在前面。

name:

根據(jù) chunk 的名稱進(jìn)行字母排序。通常在構(gòu)建大型應(yīng)用時,使用名稱排序可以更好地控制輸出的順序。manual: 開發(fā)者需要自己維護 chunks 的順序 3.glob 中 *** 的區(qū)別是什么 *(星號) 匹配文件或目錄的任意名稱* 可以匹配零個或多個字符,但不包括路徑分隔符(如 / 或 \)。使用場景: 匹配當(dāng)前目錄下的所有文件和目錄。匹配特定類型的文件,如 *.js 匹配所有 JavaScript 文件。

示例:

*.js 匹配當(dāng)前目錄下所有以 .js 結(jié)尾的文件。dir/* 匹配 dir 目錄下的所有文件和目錄,但不匹配 dir/subdir 中的內(nèi)容。 **(雙星號) 匹配任意深度的目錄** 可以匹配零個或多個目錄,并且可以跨越多個路徑分隔符。使用場景: 當(dāng)你想要匹配某個目錄及其所有子目錄中的文件時,使用 ** 是非常方便的。

示例:

**/*.js 匹配當(dāng)前目錄及所有子目錄下的所有 JavaScript 文件。dir/** 匹配 dir 目錄及其所有子目錄下的所有文件和目錄。 舉個例子

假設(shè)有以下目錄結(jié)構(gòu):

project/
├── file1.js
├── file2.txt
├── dir/
│   ├── file3.js
│   └── subdir/
│       └── file4.js

使用 *.js:

匹配結(jié)果: file1.js

使用 dir/*:

匹配結(jié)果: dir/file3.js

使用 **/*.js:

匹配結(jié)果: file1.jsdir/file3.jsdir/subdir/file4.js

使用 dir/**:

匹配結(jié)果: dir/file3.jsdir/subdirdir/subdir/file4.js

總結(jié)

* 用于匹配當(dāng)前目錄下的文件或目錄的名稱,不跨越目錄。** 用于匹配任意深度的目錄和子目錄,適合需要遍歷整個目錄樹的場景。

以上就是Vue使用pages構(gòu)建多頁應(yīng)用的實現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于Vue pages多頁應(yīng)用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 改變vue請求過來的數(shù)據(jù)中的某一項值的方法(詳解)

    改變vue請求過來的數(shù)據(jù)中的某一項值的方法(詳解)

    下面小編就為大家分享一篇改變vue請求過來的數(shù)據(jù)中的某一項值的方法(詳解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue實現(xiàn)搜索小功能

    vue實現(xiàn)搜索小功能

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)搜索小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Vue如何更改表格中的某一行選項值

    Vue如何更改表格中的某一行選項值

    這篇文章主要介紹了Vue如何更改表格中的某一行選項值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue axios重復(fù)點擊取消上一次請求封裝的方法

    vue axios重復(fù)點擊取消上一次請求封裝的方法

    這篇文章主要介紹了vue axios重復(fù)點擊取消上一次請求封裝的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • vue實現(xiàn)導(dǎo)航標(biāo)題欄隨頁面滾動漸隱漸顯效果

    vue實現(xiàn)導(dǎo)航標(biāo)題欄隨頁面滾動漸隱漸顯效果

    這篇文章主要介紹了vue實現(xiàn)導(dǎo)航標(biāo)題欄隨頁面滾動漸隱漸顯效果,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 使用elementUI table展開行內(nèi)嵌套table問題

    使用elementUI table展開行內(nèi)嵌套table問題

    這篇文章主要介紹了使用elementUI table展開行內(nèi)嵌套table問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue-router項目實戰(zhàn)總結(jié)篇

    vue-router項目實戰(zhàn)總結(jié)篇

    vue-router 是 Vue.js 官方的路由庫.這篇文章主要介紹了vue-router項目實戰(zhàn)總結(jié),需要的朋友可以參考下
    2018-02-02
  • Vue之生命周期函數(shù)詳解

    Vue之生命周期函數(shù)詳解

    這篇文章主要為大家介紹了Vue之生命周期函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • Vue3中的Fragment使用方法詳解

    Vue3中的Fragment使用方法詳解

    Fragment 是 Vue 3 中的新特性,允許一個組件模板返回多個根節(jié)點,與傳統(tǒng)方式不同,不再需要一個額外的 DOM 元素來包裹所有內(nèi)容,本文將詳細(xì)介紹 Fragment 的概念、使用場景、優(yōu)點以及可能遇到的問題,需要的朋友可以參考下
    2024-08-08
  • Vue中為什么要引入render函數(shù)的實現(xiàn)

    Vue中為什么要引入render函數(shù)的實現(xiàn)

    本文主要介紹了Vue中為什么要引入render函數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論