无木
2021-09-10 73dc492b2a49793d945ccdae7f5c429c874f298c
提交 | 用户 | age
5fb069 1 <template>
31ff05 2   <PageWrapper title="MarkDown组件示例">
73dc49 3     <div>
4       <a-button @click="toggleTheme" class="mb-2" type="primary"> 黑暗主题 </a-button>
5       <a-button @click="clearValue" class="mb-2" type="default"> 清空内容 </a-button>
6       <MarkDown
7         v-model:value="value"
8         @change="handleChange"
9         ref="markDownRef"
10         placeholder="这是占位文本"
11       />
12     </div>
13     <div class="mt-2">
14       <a-card title="Markdown Viewer 组件演示">
15         <MarkdownViewer :value="value" />
16       </a-card>
17     </div>
31ff05 18   </PageWrapper>
5fb069 19 </template>
V 20 <script lang="ts">
21   import { defineComponent, ref, unref } from 'vue';
73dc49 22   import { MarkDown, MarkDownActionType, MarkdownViewer } from '/@/components/Markdown';
31ff05 23   import { PageWrapper } from '/@/components/Page';
73dc49 24   import { Card } from 'ant-design-vue';
31ff05 25
5fb069 26   export default defineComponent({
73dc49 27     components: { MarkDown, PageWrapper, MarkdownViewer, ACard: Card },
5fb069 28     setup() {
V 29       const markDownRef = ref<Nullable<MarkDownActionType>>(null);
30       const valueRef = ref(`
31 # title
32
33 # content
34 `);
35
36       function toggleTheme() {
37         const markDown = unref(markDownRef);
38         if (!markDown) return;
39         const vditor = markDown.getVditor();
40         vditor.setTheme('dark');
41       }
7db0c5 42
V 43       function handleChange(v: string) {
44         valueRef.value = v;
45       }
46
d95815 47       function clearValue() {
48         valueRef.value = '';
49       }
50
5fb069 51       return {
V 52         value: valueRef,
53         toggleTheme,
54         markDownRef,
7db0c5 55         handleChange,
d95815 56         clearValue,
5fb069 57       };
V 58     },
59   });
60 </script>