vue-cli 模式下安裝 uni-ui

目錄

easycom

自定義easycom配置的示例

npm安裝 uni-ui

準備 sass

安裝 uni-ui

注意


easycom

傳統vue組件,需要安裝、引用、注冊,三個步驟后才能使用組件。easycom將其精簡為一步。

只要組件路徑符合規范(具體見下),就可以不用引用、注冊,直接在頁面中使用。如下:

<template><view class="container"><comp-a></comp-a><uni-list></uni-list></view>
</template>
<script>// 這里不用import引入,也不需要在components內注冊uni-list組件。template里就可以直接用export default {data() {return {}}}
</script>

路徑規范指:

  1. 安裝在項目根目錄的components目錄下,并符合components/組件名稱/組件名稱.vue
  2. 安裝在uni_modules下,路徑為uni_modules/插件ID/components/組件名稱/組件名稱.vue

工程目錄:

┌─components
│  └─comp-a
│    └─comp-a.vue      符合easycom規范的組件
└─uni_modules          [uni_module](/plugin/uni_modules.md)中符合easycom規范的組件└─uni_modules└─uni-list└─components└─uni-list└─ uni-list.vue

不管components目錄下安裝了多少組件,easycom打包會自動剔除沒有使用的組件,對組件庫的使用尤為友好。

組件庫批量安裝,隨意使用,自動按需打包。以官方的uni-ui為例,在HBuilderX新建項目界面選擇uni-ui項目模板,只需在頁面中敲u,拉出大量組件代碼塊,直接選擇,即可使用。大幅提升開發效率,降低使用門檻。

在uni-app插件市場下載符合components/組件名稱/組件名稱.vue目錄結構的組件,均可直接使用。

自定義easycom配置的示例

easycom是自動開啟的,不需要手動開啟,有需求時可以在pages.jsoneasycom節點進行個性化設置,如關閉自動掃描,或自定義掃描匹配組件的策略。設置參數如下:

屬性類型默認值描述
autoscanBooleantrue是否開啟自動掃描,開啟后將會自動掃描符合components/組件名稱/組件名稱.vue目錄結構的組件
customObject-以正則方式自定義組件匹配規則。如果autoscan不能滿足需求,可以使用custom自定義匹配規則

如果你的組件,不符合easycom前述的路徑規范。可以在pages.json的easycom節點中自行定義路徑規范。

如果需要匹配node_modules內的vue文件,需要使用packageName/path/to/vue-file-$1.vue形式的匹配規則,其中packageName為安裝的包名,/path/to/vue-file-$1.vue為vue文件在包內的路徑。

"easycom": {"autoscan": true,"custom": {"^uni-(.*)": "@/components/uni-$1.vue", // 匹配components目錄內的vue文件"^vue-file-(.*)": "packageName/path/to/vue-file-$1.vue" // 匹配node_modules內的vue文件}
}

說明

  • easycom方式引入的組件無需在頁面內import,也不需要在components內聲明,即可在任意頁面使用。
  • easycom方式引入組件不是全局引入,而是局部引入。例如在H5端只有加載相應頁面才會加載使用的組件。
  • 在組件名完全一致的情況下,easycom引入的優先級低于手動引入(區分連字符形式與駝峰形式)。
  • 考慮到編譯速度,直接在pages.json內修改easycom不會觸發重新編譯,需要改動頁面內容觸發。
  • easycom只處理vue組件,不處理小程序專用組件(如微信的wxml格式組件)。不處理后綴為.nvue的組件。因為nvue頁面引入的組件也是.vue組件。可以參考uni ui,使用vue后綴,同時兼容nvue頁面。
  • nvue頁面里引用.vue后綴的組件,會按照nvue方式使用原生渲染,其中不支持的css會被忽略掉。這種情況同樣支持easycom
  • vue?與?uvue?組件優先級,詳見。

注意這里作者遇到一個問題 如果你引入的組件文件包含package.json 比如MonoRepo項目中

并且配置了 exports 字段 對外其實是封閉的 ,導致?easycom 掃描不到組件建議配置

?"./*": "./src/*" 放開?exports 的限制

  "exports": {"./baseCss": "./src/assets/base.css",".": "./src/index.js","./*": "./src/*"}
}

npm安裝 uni-ui

在 -項目中可以使用?npm?安裝?uni-ui?庫 ,或者直接在?HBuilderX?項目中使用?npm?。

注意?cli 項目默認是不編譯?node_modules?下的組件的,導致條件編譯等功能失效 ,導致組件異常 需要在根目錄創建?vue.config.js?文件 ,增加?@dcloudio/uni-ui?包的編譯即可正常

// 在根目錄創建 vue.config.js 文件,并配置如下
module.exports = {transpileDependencies: ['@dcloudio/uni-ui']
}
// 如果是 vue3 + vite, 無需添加配置

準備 sass

vue-cli?項目請先安裝 sass 及 sass-loader,如在 HBuliderX 中使用,可跳過此步。

  • 安裝 sass
 npm i sass -D   或   yarn add sass -D  
  • 安裝 sass-loader
npm i sass-loader@10.1.1 -D   或   yarn add sass-loader@10.1.1 -D

如果?node?版本小于 16 ,sass-loader 請使用低于 @11.0.0 的版本,sass-loader@11.0.0 不支持 vue@2.6.12??如果?node?版本大于 16 ,?sass-loader?建議使用?v8.x?版本

安裝 uni-ui

npm i @dcloudio/uni-ui   或   yarn add @dcloudio/uni-ui

配置easycom

使用?npm?安裝好?uni-ui?之后,需要配置?easycom?規則,讓?npm?安裝的組件支持?easycom

打開項目根目錄下的?pages.json?并添加?easycom?節點:

// pages.json
{"easycom": {"autoscan": true,"custom": {// uni-ui 規則如下配置"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"}},// 其他內容pages:[// ...]
}

在?template?中使用組件:

<uni-badge text="1"></uni-badge>
<uni-badge text="2" type="success" @click="bindClick"></uni-badge>
<uni-badge text="3" type="primary" :inverted="true"></uni-badge>

注意

uni-ui 現在只推薦使用?easycom?,如自己引用組件,可能會出現組件找不到的問題

使用 npm 安裝的組件,默認情況下 babel-loader 會忽略所有 node_modules 中的文件 ,導致條件編譯失效,需要通過配置?vue.config.js?解決:

// 在根目錄創建 vue.config.js 文件,并配置如下
module.exports = {transpileDependencies: ['@dcloudio/uni-ui']
}
// 如果是 vue3 + vite, 無需添加配置

uni-ui 是uni-app內置組件的擴展。注意與web開發不同,uni-ui不包括基礎組件,它是基礎組件的補充。web開發中有的開發者習慣用一個ui庫完成所有開發,但在uni-app體系中,推薦開發者首先使用性能更高的基礎組件,然后按需引入必要的擴展組件。

uni-ui?不支持使用?Vue.use()?的方式安裝

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915167.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915167.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915167.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaSE-接口

概念在Java中&#xff0c;接口可以被看成是一種公共規范&#xff0c;是一種引用數據類型。語法1.接口的定義格式與類的定義格式基本相同&#xff0c;將class關鍵字替換為interface關鍵字&#xff1a;public interface IShape {}2.類與接口之間使用implements關鍵字來實現接口&a…

常用類學習

文章目錄字符串相關的類String的特性String對象的創建字符串相關的類String類與其他結構之間的轉換StringBuffer,StringBuilderStringBuffer類的常用方法JDK8之前日期時間APIjava.lang.System類java.util.Date類java.text.SimpleDateFormat類java.util.Calendar類JDK8中新日期時…

【Python庫包】Gurobi-Optimize (求解 MIP) 安裝

目錄Step1&#xff1a;注冊賬號Step2&#xff1a;獲取Licence另&#xff1a;完整安裝 Gurobi軟件參考本博客簡介Gurobi-Optimizer的安裝&#xff08;Python 環境&#xff09;。 Step1&#xff1a;注冊賬號 官網-Gurobi-Optimizer ??注意&#xff1a; Gurobi 是商業軟件&…

【滲透測試】NmapScanHelper 掃描輔助工具

目錄NmapScanHelper 掃描輔助工具一、功能特性二、文件說明三、使用方法1. 安裝依賴macOSUbuntu/DebianCentOS/RHEL2. 配置網段3. 運行掃描基本用法常用端口掃描示例掃描模式特殊環境模式選擇性掃描自定義文件4. 查看結果四、掃描模式說明標準模式特殊環境模式五、支持的 Nmap …

Python爬蟲入門到實戰(1)-requests庫

一.網絡爬蟲庫網絡爬蟲通俗來講就是使用代碼將HTML網頁的內容下載到本地的過程。爬取網頁主要是為了獲取網之間需要中的關鍵信息&#xff0c;例如網頁中的數據、圖片、視頻等。urllib庫:是Python自帶的標準庫&#xff0c;無須下載、安裝即可直接使用。urllib庫中包含大量的爬蟲…

深入理解設計模式之代理模式:原理、實現與應用

在軟件開發中&#xff0c;我們經常需要控制對某些對象的訪問——可能是為了延遲加載、添加額外功能或保護敏感資源。這正是代理模式大顯身手的地方。作為結構型設計模式的重要成員&#xff0c;代理模式在眾多知名框架和系統中扮演著關鍵角色。本文將全面剖析代理模式的方方面面…

VSCode - VSCode 快速跳轉標簽頁

VSCode 快速跳轉標簽頁 1、標簽頁列表快速跳轉 通過快捷鍵 Ctrl Tab 即可快速跳轉標簽頁 # 操作方式先按住 Ctrl 鍵&#xff0c;再按 Tab 鍵&#xff0c;此時&#xff0c;即可打開標簽頁列表&#xff08;保持 Ctrl 鍵一直按住&#xff09;然后&#xff0c;再按 Tab 鍵&#xf…

深入理解設計模式:享元模式(Flyweight Pattern)

在軟件開發中&#xff0c;我們經常會遇到需要創建大量相似對象的情況。如果每個對象都獨立存儲所有數據&#xff0c;將會消耗大量內存資源&#xff0c;導致系統性能下降。享元模式&#xff08;Flyweight Pattern&#xff09;正是為解決這一問題而生的經典設計模式。本文將深入探…

網絡大提速,RDMA,IB,iWrap

本章第一節介紹的存儲設備方面的創新解決了CPU訪問存儲設備的性能問題。但在實際的業務當中,數據的傳輸除了在節點內部的CPU與存儲設備間外,節點之間也存在數據傳輸的需求。本節我們就介紹在網絡傳輸方面是如何提速的。 在介紹新的網絡技術之前,我們看看傳統網絡是如何傳輸…

【C++】紅黑樹,“紅“與“黑”的較量

各位大佬好&#xff0c;我是落羽&#xff01;一個堅持不斷學習進步的大學生。 如果您覺得我的文章有所幫助&#xff0c;歡迎多多互三分享交流&#xff0c;一起學習進步&#xff01; 也歡迎關注我的blog主頁: 落羽的落羽 一、紅黑樹的概念與規則 紅黑樹是一種更加特殊的平衡二…

【愚公系列】《MIoT.VC》001-認識、安裝 MIoT.VC 軟件

??【行業認證權威頭銜】 ? 華為云天團核心成員:特約編輯/云享專家/開發者專家/產品云測專家 ? 開發者社區全滿貫:CSDN博客&商業化雙料專家/阿里云簽約作者/騰訊云內容共創官/掘金&亞馬遜&51CTO頂級博主 ? 技術生態共建先鋒:橫跨鴻蒙、云計算、AI等前沿領域…

git:tag標簽遠程管理

git tag v1&#xff1a;在當前所在分支創建標簽v1git tag -a v2 -m release version&#xff1a;創建一個帶有附注的標簽git tag -d v2&#xff1a;刪除本地標簽git tag&#xff1a;查看標簽git push origin 標簽1 標簽2……&#xff1a;把多個標簽推送到遠程git push origin -…

力扣 hot100 Day49

105. 從前序與中序遍歷序列構造二叉樹 給定兩個整數數組 preorder 和 inorder &#xff0c;其中 preorder 是二叉樹的先序遍歷&#xff0c; inorder 是同一棵樹的中序遍歷&#xff0c;請構造二叉樹并返回其根節點。 //抄的 class Solution { private:unordered_map<int, i…

jvm-sandbox-repeater 錄制和回放

https://github.com/alibaba/jvm-sandbox-repeater/blob/master/docs/user-guide-cn.md 快速錄制自己應用 step0 安裝sandbox和插件到應用服務器 curl -s https://github.com/alibaba/jvm-sandbox-repeater/releases/download/v1.0.0/install-repeater.sh | sh step1 修改repe…

【C++底層剖析】++a vs a++:到底誰是左值,誰是右值?

在 C 編程中&#xff0c;我們經常使用 a 和 a 來實現自增操作。乍一看它們只是“先加還是后加”的語法糖&#xff0c;但你真的理解它們的底層機制、返回值類型和左值右值屬性嗎&#xff1f;1. a 和 a 的基礎區別表達式名稱語義返回值類型左值 / 右值a前置自增先將 a 加 1&#…

【世紀龍科技】汽車故障診斷與排除仿真教學軟件讓課堂更高效安全

隨著汽車產業向智能化、電動化快速轉型&#xff0c;職業院校汽修專業的教學模式正面臨全新挑戰。傳統實車實訓存在成本高、風險大、場景單一等問題&#xff0c;而行業對人才的要求卻越來越高——既需要扎實的理論基礎&#xff0c;又必須具備熟練的故障診斷能力。如何在保證安全…

網絡基礎9:按流負載均衡實驗(等價路由)

實驗eNS拓撲圖&#xff1a;1. 網絡拓撲與 IP 配置AR5&#xff1a;GE0/0/0: 192.168.1.1/24&#xff08;連接 AR6&#xff09;GE0/0/1: 192.168.3.1/24&#xff08;連接 AR8&#xff09;Loopback0: 1.1.1.1/32&#xff08;源地址&#xff09;AR6&#xff1a;GE0/0/0: 192.168.1.…

4G模塊 A7680發送中文短信到手機

命令說明 基礎AT指令 ATi顯示產品的標志信息 ATCIMI查詢IMSI ATCICCID從SIM卡讀取ICCID ATCGSN查詢產品序列號 ATCPIN查詢卡狀態 ATCSQ查詢信號強度 ATCGATT查詢當前PS域狀態 ATCREG查詢GPRS注冊狀態 ATCEREG查詢4G注冊狀態 ATCGPADDR查詢PDP地址 ATCMGF選擇短信格式 ATCMGS發…

深度學習-線性神經網絡

文章目錄線性回歸基本概念隨機梯度下降矢量化加速正態分布和平方損失極大似然估計線性回歸實現從0開始**torch.no_grad()的兩種用途****為什么需要 l.sum().backward()&#xff1f;**調用現成庫softmax回歸圖像數據集從0開始實現softmax利用框架API實現課程學習自李牧老師B站的…

【王樹森推薦系統】推薦系統漲指標的方法04:多樣性

漲指標的方法有哪些&#xff1f; 改進召回模型&#xff0c;添加新的召回模型改進粗排和精排模型提升召回&#xff0c;粗排&#xff0c;精排的多樣性特殊對待新用戶嗎&#xff0c;低活用戶等特殊人群利用關注&#xff0c;轉發&#xff0c;評論這三種交互行為 排序的多樣性 精排多…