UNPKG

cloud-ui.vusion

Version:
412 lines (324 loc) 14.4 kB
<!-- 该 README.md 根据 api.yaml 和 docs/*.md 自动生成,为了方便在 GitHub 和 NPM 上查阅。如需修改,请查看源文件 --> # UNavbar 导航栏 - [示例](#示例) - [基本用法](#基本用法) - [选择控制](#选择控制) - [与 Logo 结合](#与-logo-结合) - [布局](#布局) - [下拉菜单与选择](#下拉菜单与选择) - [切换动画效果](#切换动画效果) - [UNavbar API](#unavbar-api) - [Props/Attrs](#propsattrs) - [Slots](#slots) - [Events](#events) - [UNavbarItem API](#unavbaritem-api) - [Props/Attrs](#propsattrs-2) - [Events](#events-2) - [UNavbarDivider API](#unavbardivider-api) - [UNavbarDropdown API](#unavbardropdown-api) - [Props/Attrs](#propsattrs-3) - [UNavbarMenu API](#unavbarmenu-api) - [UNavbarMenuGroup API](#unavbarmenugroup-api) - [UNavbarMenuItem API](#unavbarmenuitem-api) - [UNavbarMenuDivider API](#unavbarmenudivider-api) - [UNavbarSelect API](#unavbarselect-api) - [UNavbarSelectGroup API](#unavbarselectgroup-api) - [UNavbarSelectItem API](#unavbarselectitem-api) - [UNavbarSelectDivider API](#unavbarselectdivider-api) **Navigation** 通常用于页面顶部的导航菜单,放置 Logo、导航链接、用户信息等。 ## 示例 ### 基本用法 下面展示了导航条的一些基本特性,如配置链接、添加分隔线、禁用选项等。 ``` html <u-navbar style="background: #4289db;"> <u-navbar-item to="/components" icon="home">组件</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item disabled>指令</u-navbar-item> <u-navbar-divider></u-navbar-divider> <u-navbar-item>配置</u-navbar-item> <u-navbar-item href="https://github.com/vusion/cloud-ui">GitHub</u-navbar-item> </u-navbar> ``` ### 选择控制 通过`router`属性开关来决定,导航条的选择项是直接与路由绑定,还是由`value`属性来控制。 #### 路由模式 默认为此种模式,即导航条的选择项通过`to`属性直接与路由绑定的,这样就不需要操作额外的变量。这种模式下每个`<u-navbar-item>`类似 VueRouter 的`<router-link>`。 ``` html <u-navbar style="background: #4289db;"> <u-navbar-item to="u-navbar">组件</u-navbar-item> <u-navbar-item>备案管理</u-navbar-item> <u-navbar-item disabled>帮助</u-navbar-item> <u-navbar-item href="https://github.com/vusion/cloud-ui">GitHub</u-navbar-item> </u-navbar> ``` #### value 模式 将`router`属性设置为`false`时,导航条的选择项则由`value`属性来控制。类似于常用的`<u-select>`操作,`value`可以用`v-model`或`.sync`进行双向绑定。 ``` html <u-navbar value="3" :router="false" style="background: #4289db;"> <u-navbar-item value="1">组件</u-navbar-item> <u-navbar-item value="2">备案管理</u-navbar-item> <u-navbar-item value="3">帮助</u-navbar-item> <u-navbar-item value="4">GitHub</u-navbar-item> </u-navbar> ``` ### 与 Logo 结合 ``` html <u-linear-layout direction="vertical"> <u-navbar style="background: #4289db;"> <s-logo slot="left"><a href="/" target="_blank">ICP 备案系统</a></s-logo> <u-navbar-item to="u-navbar">主体</u-navbar-item> <u-navbar-item>备案管理</u-navbar-item> <u-navbar-item>帮助</u-navbar-item> </u-navbar> <u-navbar alignment="right" style="background: #151d2b;"> <s-logo slot="left"></s-logo> <u-navbar-item>产品</u-navbar-item> <u-navbar-item to="u-navbar">价格</u-navbar-item> <u-navbar-item>帮助</u-navbar-item> <u-navbar-item>合作与生态</u-navbar-item> <u-navbar-item>博客</u-navbar-item> <u-navbar-item>备案</u-navbar-item> </u-navbar> </u-linear-layout> ``` ### 布局 #### 左右插槽 导航条内容有左中右三块区域。 通过`left`和`right`两个 slot,可以快速进行布局。 ``` html <u-navbar> <s-logo slot="left"></s-logo> <u-navbar-item to="/components">组件</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item disabled>指令</u-navbar-item> <u-navbar-item slot="right" href="https://github.com/vusion/cloud-ui" target="_blank"><i-icon name="github"></i-icon></u-navbar-item> </u-navbar> ``` #### 对齐方式 通过设置`alignment`属性,可以调整中部区域的对齐方式。 ``` html <u-linear-layout direction="vertical"> <u-navbar alignment="left"> <s-logo slot="left"></s-logo> <u-navbar-item>指南</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item to="/cloud-ui">组件</u-navbar-item> <u-navbar-item slot="right" href="https://github.com/vusion/cloud-ui" target="_blank"><i-icon name="github"></i-icon></u-navbar-item> </u-navbar> <u-navbar alignment="center"> <s-logo slot="left"></s-logo> <u-navbar-item>指南</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item to="/cloud-ui">组件</u-navbar-item> <u-navbar-item slot="right" href="https://github.com/vusion/cloud-ui" target="_blank"><i-icon name="github"></i-icon></u-navbar-item> </u-navbar> <u-navbar alignment="right"> <s-logo slot="left"></s-logo> <u-navbar-item>指南</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item to="/cloud-ui">组件</u-navbar-item> <u-navbar-item slot="right" href="https://github.com/vusion/cloud-ui" target="_blank"><i-icon name="github"></i-icon></u-navbar-item> </u-navbar> </u-linear-layout> ``` ### 下拉菜单与选择 使用`<u-navbar-menu>`搭配`<u-navbar-dropdown>`来实现下拉菜单,使用`<u-navbar-select>`来实现下拉选择。 ``` html <u-navbar> <u-navbar-item to="/components">组件</u-navbar-item> <u-navbar-item disabled>指令</u-navbar-item> <u-navbar-dropdown title="下拉菜单"> <u-navbar-menu> <u-navbar-menu-item>Basic</u-navbar-menu-item> <u-navbar-menu-item>Layout</u-navbar-menu-item> <u-navbar-menu-item>Navigation <u-navbar-menu slot="sub"> <u-navbar-menu-item>Navbar</u-navbar-menu-item> <u-navbar-menu-item>Sidebar</u-navbar-menu-item> <u-navbar-menu-item>Menu</u-navbar-menu-item> </u-navbar-menu> </u-navbar-menu-item> </u-navbar-menu> </u-navbar-dropdown> <u-navbar-select> <u-navbar-select-item>请选择</u-navbar-select-item> <u-navbar-select-item>中文</u-navbar-select-item> <u-navbar-select-item>English</u-navbar-select-item> <u-navbar-select-item>Français</u-navbar-select-item> <u-navbar-select-item>Русский</u-navbar-select-item> </u-navbar-select> </u-navbar> ``` ### 切换动画效果 修改`animation`属性可以切换动画效果。 ``` html <u-linear-layout direction="vertical"> <u-navbar :router="false" animation="1"> <u-navbar-item>组件</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item disabled>指令</u-navbar-item> <u-navbar-divider></u-navbar-divider> <u-navbar-item>配置</u-navbar-item> <u-navbar-item href="https://github.com/vusion/cloud-ui">GitHub</u-navbar-item> </u-navbar> <u-navbar :router="false" animation="2"> <u-navbar-item>组件</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item disabled>指令</u-navbar-item> <u-navbar-divider></u-navbar-divider> <u-navbar-item>配置</u-navbar-item> <u-navbar-item href="https://github.com/vusion/cloud-ui">GitHub</u-navbar-item> </u-navbar> <u-navbar :router="false" animation="3"> <u-navbar-item>组件</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item disabled>指令</u-navbar-item> <u-navbar-divider></u-navbar-divider> <u-navbar-item>配置</u-navbar-item> <u-navbar-item href="https://github.com/vusion/cloud-ui">GitHub</u-navbar-item> </u-navbar> <u-navbar :router="false" animation="4"> <u-navbar-item>组件</u-navbar-item> <u-navbar-item>概念</u-navbar-item> <u-navbar-item disabled>指令</u-navbar-item> <u-navbar-divider></u-navbar-divider> <u-navbar-item>配置</u-navbar-item> <u-navbar-item href="https://github.com/vusion/cloud-ui">GitHub</u-navbar-item> </u-navbar> </u-linear-layout> ``` ## UNavbar API ### Props/Attrs | Prop/Attr | Type | Options | Default | Description | | --------- | ---- | ------- | ------- | ----------- | | router | boolean | | `true` | 是否根据 vue-router 来控制选择项 | | value.sync, v-model | any | | | 当前选择的值 | | field | string | | `'text'` | 显示文本字段 | | readonly | boolean | | `false` | 是否只读 | | disabled | boolean | | `false` | 是否禁用 | ### Slots #### (default) 链接区域 #### left 左部区域,一般放置 logo 等 #### right 右部区域,一般放置用户个人信息等 ### Events #### @click 点击此项时触发,与原生 click 事件不同的是,它只会在非只读和禁用的情况下触发。 | Param | Type | Description | | ----- | ---- | ----------- | | $event | MouseEvent | 鼠标事件对象 | | senderVM | Vue | 发送事件实例 | #### @before-select 选择某一项前触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event | object | 自定义事件对象 | | $event.value | any | 选择项的值 | | $event.oldValue | any | 旧的值 | | $event.item | object | 选择项相关对象 | | $event.itemVM | NavbarItem | 选择项子组件 | | $event.preventDefault | Function | 阻止选择流程 | | senderVM | Vue | 发送事件实例 | #### @input 选择某一项时触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event | any | 选择项的值 | | senderVM | Vue | 发送事件实例 | #### @select 选择某一项时触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event | object | 自定义事件对象 | | $event.value | any | 改变后的值 | | $event.oldValue | any | 旧的值 | | $event.item | object | 选择项相关对象 | | $event.oldItem | object | 旧的选择项相关对象 | | $event.itemVM | UNavbarItem | 选择项子组件 | | $event.oldVM | UNavbarItem | 旧的选择项子组件 | | senderVM | Vue | 发送事件实例 | #### @change 选择值改变时触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event | object | 自定义事件对象 | | $event.value | any | 选择项的值 | | $event.oldValue | any | 旧的值 | | $event.item | object | 选择项相关对象 | | $event.oldItem | object | 旧的选择项相关对象 | | $event.itemVM | UNavbarItem | 选择项子组件 | | $event.oldVM | UNavbarItem | 旧的选择项子组件 | | senderVM | UNavbar | 发送事件实例 | ## UNavbarItem API ### Props/Attrs | Prop/Attr | Type | Options | Default | Description | | --------- | ---- | ------- | ------- | ----------- | | text | string | | | 文本内容 | | value | any | | | 此项的值 | | icon | icon | | `''` | 图标 | | disabled | boolean | | `false` | 禁用此项 | | item | object | | | 相关对象。当选择此项时,抛出的事件会传递该对象,便于开发 | | linkType | string | `[object Object]`<br/>`[object Object]` | `'destination'` | 链接类型 | | hrefAndTo | string | | | 链接地址 | | target | string | `[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]` | `'_self'` | 链接跳转方式 | | to | string, Location | | | 需要 vue-router,与`<router-link>`的`to`属性相同。可以是一个字符串或者是描述目标位置的对象。 | | replace | boolean | | `false` | 需要 vue-router,与`<router-link>`的`replace`属性相同。如果为`true`,当点击时,会调用`router.replace()`而不是`router.push()`,于是导航后不会留下`history `记录。 | | exact | boolean | | `false` | 需要 vue-router,与`<router-link>`的`exact`属性相同。是否与路由完全一致时才高亮显示。 | ### Events #### @before-select 选择此项前触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event | object | 自定义事件对象 | | $event.value | any | 此项的值 | | $event.item | object | 此项的相关对象 | | $event.itemVM | UNavbarItem | 此组件 | | $event.preventDefault | Function | 阻止选择流程 | | senderVM | Vue | 发送事件实例 | #### @before-navigate 使用 router 相关属性切换路由前触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event | object | 自定义事件对象 | | $event.to | string, Location | `to`属性的值 | | $event.replace | boolean | `replace`属性的值 | | $event.exact | boolean | `exact`属性的值 | | $event.preventDefault | Function | 阻止切换流程 | | senderVM | Vue | 发送事件实例 | #### @navigate 使用router相关属性切换路由时触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event | object | 自定义事件对象 | | $event.to | string, Location | `to`属性的值 | | $event.replace | boolean | `replace`属性的值 | | $event.exact | boolean | `exact`属性的值 | | senderVM | Vue | 发送事件实例 | ## UNavbarDivider API 暂无 ## UNavbarDropdown API ### Props/Attrs | Prop/Attr | Type | Options | Default | Description | | --------- | ---- | ------- | ------- | ----------- | | trigger | string | `[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]` | `'hover'` | 触发方式 | | placement | string | `[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]`<br/>`[object Object]` | `'bottom'` | 弹出方位 | | disabled | boolean | | `false` | 是否禁用 | ## UNavbarMenu API 暂无 ## UNavbarMenuGroup API 暂无 ## UNavbarMenuItem API 暂无 ## UNavbarMenuDivider API 暂无 ## UNavbarSelect API 暂无 ## UNavbarSelectGroup API 暂无 ## UNavbarSelectItem API 暂无 ## UNavbarSelectDivider API 暂无