docs: 新增 hooks 文档

This commit is contained in:
就眠仪式 2021-10-25 00:36:19 +08:00
parent 6374ad4805
commit daf314ff0c
4 changed files with 128 additions and 0 deletions

View File

@ -0,0 +1,15 @@
::: field useClickOutside
:::
```html
<div ref='dropdownRef'></div>
```
```javascript
const dropdownRef = ref<null | HTMLElement>(null)
const isClickOutside = useClickOutside(dropdownRef)
watch(isClickOutside, () => {
})
```

View File

@ -17,6 +17,9 @@
<li class="layui-nav-item"> <li class="layui-nav-item">
<router-link to="/zh-CN/components"> 组件 </router-link> <router-link to="/zh-CN/components"> 组件 </router-link>
</li> </li>
<li class="layui-nav-item">
<router-link to="/zh-CN/hooks"> hooks </router-link>
</li>
<li class="layui-nav-item"> <li class="layui-nav-item">
<lay-form> <lay-form>
<lay-search :datas="menus" /> <lay-search :datas="menus" />

View File

@ -1,5 +1,6 @@
import BaseLayout from '../layouts/Layout.vue' import BaseLayout from '../layouts/Layout.vue'
import Component from '../view/component.vue' import Component from '../view/component.vue'
import Hooks from '../view/hooks.vue'
import Guide from '../view/guide.vue' import Guide from '../view/guide.vue'
import Index from '../view/index.vue' import Index from '../view/index.vue'
@ -254,6 +255,19 @@ const zhCN = [
}, },
], ],
}, },
{
path: '/zh-CN/hooks',
redirect: '/zh-CN/hooks/useClickOutside',
component: Hooks,
meta: { title: 'hooks' },
children: [
{
path: '/zh-CN/hooks/useClickOutside',
component: () =>
import('../../docs/zh-CN/hooks/useClickOutside.md'),
meta: { title: 'useClickOutside' },
}
]}
], ],
}, },
] ]

96
docs/src/view/hooks.vue Normal file
View File

@ -0,0 +1,96 @@
<template>
<lay-layout>
<lay-side>
<lay-scroll>
<ul class="layui-menu layui-menu-lg layui-menu-docs">
<li
v-for="menu in menus"
:key="menu"
class="layui-menu-item-group"
lay-options="{type: 'group', isAllowSpread: true}"
>
<div class="layui-menu-body-title">{{ menu.title }}</div>
<hr />
<ul>
<li
v-for="children in menu.children"
:key="children"
:class="[
currentPath === children.path
? 'layui-menu-item-checked2'
: '',
]"
@click="handleClick(children)"
>
<div class="layui-menu-body-title">
<router-link :to="children.path">
<span>{{ children.title }}</span>
<span class="layui-font-12 layui-font-gray">
{{ children.subTitle }}
</span>
</router-link>
</div>
</li>
</ul>
</li>
</ul>
</lay-scroll>
</lay-side>
<lay-body>
<div style="padding: 20px">
<router-view />
</div>
</lay-body>
</lay-layout>
</template>
<script>
import { ref, watch } from 'vue'
import { useRouter, useRoute } from 'vue-router'
export default {
setup() {
const route = useRoute()
const router = useRouter()
const currentPath = ref('/zh-CN/guide')
watch(
() => route.path,
(val) => {
currentPath.value = val
},
{
immediate: true,
deep: true,
}
)
const menus = [
{
id: 1,
title: 'hooks',
children: [
{
id: 1,
title: 'useClickOutside',
subTitle: '',
path: '/zh-CN/hooks/useClickOutside',
}
],
},
]
const selected = ref(1)
const handleClick = function (menu) {
selected.value = menu.id
router.push(menu.path)
}
return {
menus,
selected,
currentPath,
handleClick,
}
},
}
</script>