1// .vitepress/theme/index.js
2
3//引入medium-zoom组件
4import { onMounted, watch, nextTick } from 'vue' //[!code ++]
5import { useRoute } from 'vitepress' //[!code ++]
6import mediumZoom from 'medium-zoom' //[!code ++]
7import './custom.css' //[!code ++]
8
9export default {
10 extends: DefaultTheme,
11 Layout: MyLayout,
12 //设置medium-zoom
13 setup() { //[!code ++]
14 const route = useRoute(); //[!code ++]
15 const initZoom = () => { //[!code ++]
16 // 不添加{data-zoomable}的情况下为所有图像启用放大功能 //[!code ++]
17 mediumZoom('.main img', { background: 'var(--vp-c-bg)' }); //[!code ++]
18 }; //[!code ++]
19 onMounted(() => { //[!code ++]
20 initZoom(); //[!code ++]
21 }); //[!code ++]
22 watch( //[!code ++]
23 () => route.path, //[!code ++]
24 () => nextTick(() => initZoom()) //[!code ++]
25 ); //[!code ++]
26 }, //[!code ++]
27
28};