最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

uni-app的pages.json處理方案示例

 更新時間:2023年01月17日 09:34:06   作者:天堂里的花大咩  
這篇文章主要為大家介紹了uni-app的pages.json處理方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

uni-pages-hot-modules

github uni-app項目示例

npm包源碼

uni-app的pages.json的模塊化及模塊熱重載

解決uni-app的pages.json無法模塊化的問題,并且解決模塊熱重載和緩存的問題

安裝

npm i uni-pages-hot-modules -S

注意!

發(fā)現(xiàn)uni-app每次更新對pages.js的支持度會不同,比如某個版本竟然注釋掉了對pages.js的熱重載依賴,這里做了兼容。只要uni-app不推翻自己的設計,此功能長久有效

uni-pages-hot-modules做了什么

// 做了非常輕便的事情,相當于
loader.addDependency(modulePath)
delete require.cache[modulePath]
require(modulePath)

uni-app的“彩蛋”

uni-app自帶一個webpack loader鉤子文件pages.js,在項目src目錄下建立pages.js(與pages.json同級)即可生效(pages.json仍然需要存在,作為初始值,建議存放一些和路由無關的配置)。
pages.js要求CommonJS規(guī)范,直接通過module.exports輸出一個鉤子函數(shù)。

pages.js輸出的函數(shù)參數(shù)

pagesJson < Object >

pages.json的解析內(nèi)容

loader < Object >

uni-pages-loader的鉤子屬性,{ addDependency < Function > }

addDependency

用于手動為uni-pages-loader添加依賴模塊

pages.js的模塊化

由于是js,就可以實現(xiàn)模塊的依賴,如果不考慮模塊的熱重載問題,可以直接使用require引入依賴但是大多數(shù)情況下,需要依賴的模塊也可以通過熱重載更新pages.js,由于不是webpack的標準運行依賴,所以需要手動添加依賴項(使用addDependency),并且需要每次清除模塊的緩存,因此uni-pages-hot-modules就誕生了

pages.js示例

module.exports=(pagesJson,loader)=>{
    // 需要將loader傳入作為初始化,v0.0.6之后只需要初始化一次
    const hotRequire = require('uni-pages-hot-modules')(loader)
    return {
        "pages": [
            {
                "path": "pages/about/about",
                "style": {
                    "navigationBarTitleText": "測試1"
                }
            },
            ...hotRequire('./module1.js')
        ],
        "subPackages":[{
            "root": "pages/test",
            "pages": [{
                "path": "about",
                "style": {
                    "navigationBarTitleText": "測試"
                }
            }]
        }]
    }
}

模塊的規(guī)范

被加載的模塊也是CommonJS規(guī)范,通過module.exports輸出

module1.js示例

// v0.0.6之后,模塊內(nèi)部使用不再需要提供loader
const hotRequire = require('uni-pages-hot-modules')
module.exports=[
   {
       "path": "pages/sub/sub",
       "style": {
           "navigationBarTitleText": "sub"
       }
   },
   ...hotRequire('./sub-module1.js')
]

其他

不支持條件編譯,需要自己通過process.env.UNI_PLATFORM來判斷,自定義環(huán)境的需要自己添加env變量來判斷
使用uni-pages-hot-modules引入模塊必須輸入全的文件名包括后綴,否則將不會進行熱重載

以上就是uni-app的pages.json處理方案示例的詳細內(nèi)容,更多關于uni-app pages.json處理的資料請關注腳本之家其它相關文章!

相關文章

最新評論

盐城市| 伊宁县| 上林县| 密山市| 紫金县| 廊坊市| 云安县| 长子县| 云南省| 贡嘎县| 崇明县| 平舆县| 长春市| 策勒县| 乌拉特后旗| 丰顺县| 大邑县| 峡江县| 柳林县| 潼关县| 交城县| 临朐县| 久治县| 玉溪市| 个旧市| 敦化市| 赣榆县| 新宁县| 宁武县| 全椒县| 皋兰县| 高邑县| 沁阳市| 当涂县| 建昌县| 青阳县| 屏南县| 永宁县| 工布江达县| 曲靖市| 宁陕县|