Vuetify
基本知识
引入
CDN
<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@4.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
</head>
<body>
<div id="app">
<v-app>
<v-content>
<v-container>Hello world</v-container>
</v-content>
</v-app>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
<script>
new Vue({
el: '#app',
vuetify: new Vuetify(),
})
</script>
</body>
</html>
使用 Vue CLI
vue create my-app
# 切换到新项目目录
cd my-app
在项目目录中使用
vue add vuetify
或者使用 Vue UI 安装
vue ui
Electron 用法
要在 Electron 中使用 Vuetify ,需通过 Vue CLI 添加 electron-builder 插件。
# 安装
vue add electron-builder
# 使用
yarn electron:build
yarn electron:serve
布局
Vuetify 有两个主要布局组件, v-app
和 v-main
<template>
<v-app>
<v-main>
<!-- page content -->
<router-view></router-view>
</v-main>
</v-app>
</template>
<script>
export default {
name: "App",
data: () => ({
//
}),
};
</script>
v-app
v-app
组件是应用程序的根节点,直接替换默认的 Vue 入口 <div id="app">
在其中写入的元素,会作为布局的一部分
在组件或其他视图中,不需要引入 v-app
所有应用都需要 v-app
组件。 这是许多 Vuetify 组件和功能的挂载点,而且它必须是所有 Vuetify 组件的祖先节点
v-app
只应该在应用中渲染一次。
v-main
v-main
组件是替换 main
HTML 元素和应用程序的根节点 内容 的语义替代
常常在其中切换路由
它会根据你指定的应用组件的结构而动态调整大小
默认应用标记
只要设置 app 属性,你可以将布局元素放在任何地方
通用属性
Name | Type | Default | Description |
---|---|---|---|
color | string | undefined | 详见 colors page |
app | 相应的组件是应用布局的一部分 | ||
dense | boolean | flase | 使组件更小 |
elevation | number | string | undefined | 组件的海拔可接受 0 到 24 之间的值 |
disabled | boolean | false | 移除组件的单击或 target 功能 |
应用组件
这些组件通常被用作布局元素。它们可以混合和匹配,并且每个特定组件在任何时候都只能存在一个
每一个应用组件都有一个指定的位置和优先级,影 响布局系统中的位置
- v-app-bar:总是放在应用顶部,优先级低于
v-system-bar
。 - v-bottom-navigation:总是放在应用底部,优先级高于
v-footer
。 - v-footer:总是放在应用底部,优先级低于
v-bottom-navigation
。 - v-navigation-drawer:可以放置在应用的左边或右边,并且可以配置在
v-app-bar
的旁边或下面。 - v-system-bar:总是放在应用顶部,优先级高于
v-app-bar
v-app-bar
v-app-bar
组件对于任何图形用户界面(GUI)都至关重要,因为它通常是站点导航的主要来源
App-bar 组件与 <a href=“/components/navigation drawers”>
v-navigation-drawer
配合使用,可以在应用程序中提供站点导航
v-app-bar
组件用于应用程序范围内的操作和信息
API
Name | Type | Default | Description |
---|---|---|---|
collapse | boolean | false | 将工具栏置于折叠状态,以减小其最大宽度 |
collapse-on-scroll | boolean | false | 滚动时将应用栏置于折叠状态 |
dense | boolean | false | 将工具栏内容的高度降低到 48px(使用 prominent 属性时为 96px)。 |
子组件
v-app-bar-nav-icon
专门为与 v-toolbar
和 v-app-bar
一起使用而创建的样式化图标按钮组件
在工具栏的左侧显示为汉堡菜单,它通常用于控制导航抽屉的状态
<v-app-bar-nav-icon></v-app-bar-nav-icon>
v-app-bar-title
修改过的 v-toolbar-title 组件 ,用于配合 shrink-on-scroll
属性使用
v-bottom-navigation
v-footer
v-footer
组件用于显示用户可能想要从网站中的任何页面都能访问到的公共信息
v-navition-drawer
(导航抽屉)
用于导航应用程序的组件
为了显示的目的,一些示例被包装在 v-card
元素中。
通常会把 v-navigation-drawer
组件作为 v-app
的直接子组件
使用 null
作为其 v-model 的初始值 将会将抽屉初始化为在移动设备上关闭,在桌面环境下打开。
通常使用 nav 属性将抽屉与 v-list 组件配对
API
Name | Type | Default | Description |
---|---|---|---|
expand-on-hover | boolean | false | 将抽屉折叠成 mini-variant,直到用鼠标悬停 |
temporary | boolean | false | 临时抽屉位于其应用之上,并使用稀松布(叠加)来使背景变暗 |
permanent | boolean | false | 不管屏幕尺寸如何,抽屉都可以看到 |
src | string | object | undefined | 指定 v-img 作为组件背景。 |
v-system-bar
多功能组件
v-cards
卡中有 4 个基本组件。 v-card-title
, v-card-subtitle
, v-card-text
和 v-card-actions
API
Name | Type | Default | Description |
---|---|---|---|
hover | boolean | false | 悬停时将应用 4dp 的海拔(默认值为 2dp) |
img | string | undefined | 指定卡片的背景图。对于更高级的实现,建议您使用 v-img 组件 |
to | string | object | undefined | 表示链接的目标路由 |
dense | boolean | false | 将工具栏内容的高度降低到 48px |
rounded | boolean | string | undefined | 对指定的组件应用 border-radius 样式 |
outlined | boolean | false | 去除卡片的实心颜色并添加细边框 |
loading | boolean | string | false | 显示线性进度条。可以是指定将哪种颜色应用于进度条的字符串(任何 material 色彩——主要(primary), 次要(secondary), 成功(success), 信息(info),警告(warning),错误(error)),或者使用组件的布尔值 color(由色彩属性设置——如果它被组件支持的话)还可以是原色 |
子组件
v-card-actions
用于为卡片放置 动作 的容器,如 v-btn 或 v-menu
v-card-text
主要用于卡片中的 文本内容
v-card-subtitle
为卡片字幕提供默认的 字体大小 和 填充
v-card-title
为卡片字幕提供默认的 字体大小 和 填充
v-tool-bar
v-toolbar
组件对于任何 gui 都是至关重要的,因为它通常是站点导航的主要来源。 工具栏组件与 <a href="/components/navigation drawers">, v-navigation-drawer
和 v-card
配合使用非常有效
<template>
<div>
<v-toolbar>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Vuetify</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-export</v-icon>
</v-btn>
</v-toolbar>
</div>
</template>
API
Name | Type | Default | Description |
---|---|---|---|
prominent | boolean | false | 将工具栏内容的高度增加到 128px |
src | string | object | undefined | 指定 v-img 作为组件背景 |
collapse | boolean | false | 将工具栏置于折叠状态,以减小其最大宽度 |
dense | boolean | false | 将工具栏内容的高度降低到 48px |
子组件
v-toolbar-items
允许 v-btn
扩展全高度