自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手搭建Vue3中后臺(tái)框架-NaiveUI、Less、Unocss

開發(fā) 前端
很多組件庫都提供了全局引入和按需引入等配置方式,我們當(dāng)然都推薦使用按需引入,按需引入有兩種方式,一種是在頁面手動(dòng)引入需要使用的庫,另一種自動(dòng)按需引入,使用Unplugin-auto-import和Unplugin-vue-components庫,雖然這種方式使用起來方便,但是按需引入的時(shí)候加載會(huì)比較慢,所以我們推薦使用手動(dòng)引入的方式。

Vue的第三方組件庫非常多,最優(yōu)秀的就是Element-Plus和Ant Design,當(dāng)然還有其他大廠出品的KPI項(xiàng)目,我們打算使用大佬推薦過的一個(gè)UI庫-NaiveUI。這個(gè)庫的引入和安裝非常簡單,官網(wǎng)上有詳細(xì)的說明。

NaiveUI安裝與使用

pnpm install naive-ui

很多組件庫都提供了全局引入和按需引入等配置方式,我們當(dāng)然都推薦使用按需引入,按需引入有兩種方式,一種是在頁面手動(dòng)引入需要使用的庫,另一種自動(dòng)按需引入,使用unplugin-auto-import和unplugin-vue-components庫,雖然這種方式使用起來方便,但是按需引入的時(shí)候加載會(huì)比較慢,所以我們推薦使用手動(dòng)引入的方式。

配置NaiveUI

安裝完NaiveUI我們需要進(jìn)行全局配置,這樣才能使用它的主題和通知類的組件。在官方文檔的全局化配置頁面查看:

<n-config-provider :theme="theme">
  <app />
</n-config-provider>

NConfigProvider會(huì)配置主題、國際化等,我們一般把它配置的app.vue中,結(jié)果如下:

<n-config-provider :theme="theme === 'dark' ? darkTheme : lightTheme" :locale="zhCN" :date-locale="dateZhCN">
  <n-global-style />
  <router-view></router-view>
</n-config-provider>

其中NGlobalStyle是為了把樣式添加到全局,也就是body上,這樣對(duì)于一些不包裹在NConfigProvider之內(nèi)組件也能響應(yīng)主題變化,例如使用Teleport把組件掛載在body上。

除了全局配置以外,還有message、dialog、notification、loadingBar需要配置,配置的方式有兩種,一種是在app.vue中像NConfigProvider一樣添加,然后在組件中使用useXxxx來使用,但是這種方式只能在組件內(nèi)使用,如果在非組件內(nèi),例如store和router就會(huì)有問題了。因此官方還提供了一個(gè)全局使用的方式,使用全局API,這種方式就會(huì)脫離上下文,脫離上下文以后就不會(huì)受n-xxx-provider的限制了,但是同時(shí)也不能跟隨主題變化,需要我們自己去處理,使用方式如下:

import { createDiscreteApi } from 'naive-ui';

const { message, dialog, notification, loadingBar } = createDiscreteApi([
  'message',
  'dialog',
  'notification',
  'loadingBar'
]);
export { message, dialog, notification, loadingBar };

安裝Less

css是前端必須使用的,但是標(biāo)準(zhǔn)css的用法太過單一,不夠靈活,因此衍生出很多第三方的css庫,最流行的就是less和sass,這里我們選擇less。

pnpm install -D less

less的使用非常簡單,在.vue文件中style標(biāo)簽上加上lang="less",就可以在style中使用less書寫css了。

安裝unocss

UnoCSS 是一個(gè)原子化 CSS 引擎,而不是一個(gè)框架,受 Windi CSS, Tailwind CSS, Twind 啟發(fā),但是它更快、更小。

pnpm install -D unocss @unocss/preset-uno @unocss/preset-icons @unocss/preset-attributify @iconify-json/ic

unocss自身不帶css樣式,由你自己編寫規(guī)則,比如m-4,你可以指定它為margin: 4px也可以指定它為margin: 40px,但是我們當(dāng)然不會(huì)把所有的都自己寫一遍,那太麻煩了,因此unocss也提供了一些預(yù)設(shè)的css樣式模板。比較常用的就是上面安裝的三種:

  • @unocss/preset-uno:它作為unocss的默認(rèn)預(yù)設(shè),提供了流行的實(shí)用程序優(yōu)先框架 Tailwind CSS、Windi 的通用超集 CSS、Bootstrap、Tachyons 等。添加了這個(gè)預(yù)設(shè),我們就可以像使用Tailwind CSS那樣去使用unocss了。
  • @unocss/preset-attributify:對(duì)其它預(yù)設(shè)和規(guī)則提供 屬性模式,可以像使用屬性那樣在HTML中使用css。
  • @unocss/preset-icons:可以讓我們通過css類名來使用各種圖標(biāo),Iconify 作為圖標(biāo)的數(shù)據(jù)源,因此當(dāng)安裝了此庫后,還需要安裝對(duì)應(yīng)的圖集庫: @iconify-json/*,在對(duì)應(yīng)的Iconify官網(wǎng)可以看到所有支持的圖集。

  • 我們可以選擇自己喜歡的圖標(biāo)去安裝,當(dāng)然也可以安裝所有的圖標(biāo):@iconify/json,但是它有130M,我想應(yīng)該沒有人會(huì)這么使用它吧。在這里我們使用Google Material Icons。

  • 打開上面頁面的時(shí)候,查看一下地址欄:https://icones.js.org/collection/ic,記住后面的ic,這個(gè)圖集的庫名稱為:@iconify-json/ic。圖標(biāo)的使用語法是:i+圖集縮寫+圖標(biāo)名,例如:i-ic-baseline-add-circle。

引入unocss

在vite.config.ts中引入

import Unocss from 'unocss/vite'
import { presetUno, presetAttributify, presetIcons } from 'unocss'

plugins: [
  vue(),
  Unocss({
    presets: [
        presetUno(), 
        presetAttributify(), 
        presetIcons({scale: 1.2, warn: true})],
  }),
]

在main.ts中引入uno.css。

import 'uno.css'

在VSCode中我們可以通過安裝插件:UnoCSS,來獲得智能提示,增強(qiáng)編程體驗(yàn)。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2023-05-29 09:37:17

Vue3Vite

2022-07-26 01:06:18

Vue3自定義指令

2022-08-01 11:41:00

Vue插件

2022-03-24 15:28:43

Vue開發(fā)框架

2022-03-14 14:47:21

HarmonyOS操作系統(tǒng)鴻蒙

2021-12-02 11:39:28

Git服務(wù)器Linux

2020-11-03 14:10:29

Vue服務(wù)端渲染前端

2011-03-25 12:45:49

Oracle SOA

2009-12-11 09:04:10

Windows搭建Li

2024-12-16 11:32:31

2022-06-30 08:13:44

PythonWeb編程語言

2018-05-14 16:34:08

Python網(wǎng)絡(luò)爬蟲Scrapy

2010-07-06 09:38:51

搭建私有云

2010-07-06 09:43:57

搭建私有云

2022-01-04 08:52:14

博客網(wǎng)站Linux 系統(tǒng)開源

2025-02-26 07:40:25

運(yùn)營分析體系運(yùn)營策略

2010-01-20 10:44:01

linux DHCP服務(wù)器

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機(jī)

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)