首页 > 其他分享 >Naive UI 2.38.1

Naive UI 2.38.1

时间:2024-04-23 11:12:55浏览次数:20  
标签:ui vue Naive xxx 2.38 value UI import naive

配置字体

  • Naive UI 可以和 vfonts 配合,你可以简单的引入 vfonts 中的字体,包含常规字体和等宽字体。
  • 只需要在你 App 的入口文件导入字体,即可调整 Naive UI 的字体。
  • 注意:不同 vfonts 字体提供的字重不同,在使用 Lato、OpenSans 的时候你需要全局调整 naive-ui 的字重配置。
<!-- 调整 naive-ui 的字重配置 -->
<n-config-provider :theme-overrides="{ common: { fontWeightStrong: '600' } }">
  <app />
</n-config-provider>
  • 如果你不打算使用 vfonts 并且想要通过主题调整修改其为别的字体,你需要使用 n-global-style 来做到这一点。在不使用 n-global-style 的情况下组件不会响应 theme-overrides 中的字体变更。
  • 题外话:不使用 n-global-style 就能让 vfonts 直接生效是一个设计上的妥协,在下个大的版本默认的全局 reset 样式将不再带有字体相关的样式,而是全部置于 n-global-style 组件中。

全局样式 Global Style

  • 出于以下原因,你可能需要将某些样式设定在 document.body 上。
    • naive-ui 会设定一些非响应式的全局样式(例如字体),它们在默认状况下工作良好,但是不能响应主题的变化。
    • n-config-provider 无法将全局样式同步到它以外的地方(例如 body 背景色)。
  • 通过使用 n-global-style 可以将常见的全局样式同步到 body 上。在下面的例子中,n-global-style 会将 n-config-provider 提供的主题同步到 document.body 上。
<n-config-provider>
  <n-global-style />
  ...
</n-config-provider>

按需引入(Tree Shaking)

  • 默认情况组件主题为亮色,语言为英文,无需额外导入。
<script>
  import { defineComponent } from 'vue'
  import { NConfigProvider, NInput, NDatePicker, NSpace } from 'naive-ui'
  // theme
  import { createTheme, inputDark, datePickerDark } from 'naive-ui'
  // locale & dateLocale
  import { zhCN, dateZhCN } from 'naive-ui'

  export default defineComponent({
    components: {
      NConfigProvider,
      NInput,
      NDatePicker,
      NSpace
    },
    setup() {
      return {
        darkTheme: createTheme([inputDark, datePickerDark]),
        zhCN,
        dateZhCN
      }
    }
  })
</script>

<template>
  <n-config-provider :theme="darkTheme" :locale="zhCN" :date-locale="dateZhCN">
    <n-space vertical>
      <n-input />
      <n-date-picker />
    </n-space>
  </n-config-provider>
</template>
  • 可以使用 unplugin-auto-import 插件来自动导入 API。
  • 如果使用模板方式进行开发,可以使用 unplugin-vue-components 插件来按需自动加载组件,插件会自动解析模板中的使用到的组件,并导入组件。
// vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      imports: [
        'vue',
        {
          'naive-ui': [
            'useDialog',
            'useMessage',
            'useNotification',
            'useLoadingBar'
          ]
        }
      ]
    }),
    Components({
      resolvers: [NaiveUiResolver()]
    })
  ]
})
  • 按需全局安装组件(手动)
import { createApp } from 'vue'
import {
  // create naive ui
  create,
  // component
  NButton
} from 'naive-ui'

const naive = create({
  components: [NButton]
})

const app = createApp()
app.use(naive)

常见问题

  • 在 Naive UI 中,全部的 API 文档使用 on-update:xxx 格式,因为 @ 只是 Vue 提供的一种简写。
  • 如果你偏爱 camelCase,可以使用 onUpdate:xxx。
  • 如果你在使用 JSX,可以使用 onUpdateXxx(所有的 onUpdate:xxx 都有一个 onUpdateXxx 的对等实现)。
  • 如果你在一个组件上使用了 v-model:xxx,你应该使用 @update:xxx。
    • 这是因为 v-model:value="xxx" 会被转化为 :onUpdate:value="xxx"。如果你同时使用了 @update:value="yyy",他们会被转化为 :onUpdate:value="[xxx, yyy]",然后 Naive UI 会来处理这种情况。
    • 然而如果你使用了 on-update:value="yyy",Vue 会生成类似于 :onUpdate:value="xxx" :on-update:value="yyy" 的代码,然后第二个属性会在运行时覆盖掉第一个,v-model:value 会崩掉。

标签:ui,vue,Naive,xxx,2.38,value,UI,import,naive
From: https://www.cnblogs.com/qq3279338858/p/18152384

相关文章

  • [数据库] 浅谈mysql的serverId/serverUuid
    [数据库]浅谈mysql的serverId/serverUuid0序情景1:MYSQL数据库的主从复制架构:1主1从MYSQL数据库的binlog应用情况:存在多个基于binlog同步机制的FlinkCdcJob,从MYSQL中增量同步数据某一天,FlinkCdcJob报如下错误:ConnectException:Aslavewiththesameserver_uuid/se......
  • 界面组件DevExpress Blazor UI v23.2 - 支持.NET 8、全新的项目模版
    DevExpress BlazorUI组件使用了C#为BlazorServer和BlazorWebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生BlazorUI组件(包括PivotGrid、调度程序、图表、数据编辑器和报表等)。DevExpress Blazor控件目前已经升级到v23.2版本了,新版本正式支持.NET8、拥......
  • UE4纯C++实现游戏中快捷栏之创建快捷栏UI
    作为一个在游戏界面中显示的快捷栏,我们需要在游戏运行时就显示出快捷栏UI,故我们创建两个Widget。1.SlAiGameHUDWidget:负责游戏中界面UI的整体显示2.SlAiShortcutWidget:负责快捷栏部件的显示与逻辑然后我们通过:1.将GameHUDWidget添加进视口:在GameHUD文件中添加Game......
  • 鸿蒙HarmonyOS实战-ArkUI动画(弹簧曲线动画)
    ......
  • 蓝牙打印开发代码示例(日拱一卒,有点进步,UUID仍报错)
     packagecom.lingrui.btprint;importandroid.Manifest;importandroid.app.AlertDialog;importandroid.bluetooth.BluetoothAdapter;importandroid.bluetooth.BluetoothDevice;importandroid.bluetooth.BluetoothSocket;importandroid.content.DialogInterface......
  • burpsuite安装激活
    1、前置条件1)已安装java,并且已正确配置环境变量(怎么配置环境变量很简单,这里就不赘述了);2)java版本需1.8以上。2、下载burpsuite。burpsuite有免费版和收费版,收费版本需要激活才能使用 第一个是注册机(用于生成秘钥),第二个也是注册机(区别在于它是中文)3、运行注册机......
  • A Guide to OkHttp
      AGuidetoOkHttp     52.5M ASimpleTwoFactorImplementationwithaSoftToken(LSS-Module14-Lesson1)    Lastupdated: January8,2024Writtenby:baeldungReviewedby:ZegerHendrikse......
  • Network loop(managed by libmosquitto)
    mosquitto_loop_forever()&mosquitto_loop()mosquitto_loop_forever()是一个阻塞调用,适用于你只想在回调中处理传入消息的情况。换句话说,调用这个函数,该函数内部调用了一个while(1)循环和mosquitto_loop(),接下来你什么也不能干。mosquitto_loop_start()&mosquitto_loop_sto......
  • 聊聊从大模型来看NLP解决方案之UIE
    转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote概述自然语言处理NLP任务的实现,相比较以前基于传统机器学习算法实现方法,现在越来越集中使用大模型来实现。通过——数据标注-模型训练-模型调优/微调-模型压缩-预测部署的大模型流程,覆盖NLP多场景满足开发者落地实现与......
  • Boss——Boss入场和UI
    目的:玩家在遭遇Boss后会有一个具备动画效果的UI表现Boss会有一个入场表现表现期间玩家不能操作核心思路在场景中放置一个触发器,用关卡蓝图来调用BossUIBossUI播放一个动画效果后显示Boss头像和血量播放UI效果时,同时表现Boss出场动画(被一辆载具载来)1.创建Boss触发器蓝图......