2024-07-17 xxx.vue?raw作用 ==> 把xxx.vue转换成源码,以字符串形式返回

常见ui库会有个代码预览,这是怎么做到的?就是通过导入一个vue文件的源代码,用pre和code包裹着显示的,比如:

<template>
  <div>
    <transition name="slide-fade">
      <pre v-highlight>
        <code class="language-js">
            {{ sourceCode }}                      
        </code>
       </pre>
    </transition>
  </div>
</template>

<script setup>
import { onMounted, ref } from "vue";
const props = defineProps({
  compName: {
    type: String,
    default: "button",
    required: true,
  },
  demoName: {
    type: String,
    default: "demo1",
    required: true,
  },
});
const sourceCode = ref("");

const getSourceCode = async () => {
  sourceCode.value = (
    await import(`@packages/${props.compName}/doc/${props.demoName}.vue?raw`)
  ).default;
  console.log("sourceCode.value", sourceCode);
};

onMounted(() => {
  console.log("props", props);
  getSourceCode();
});
</script>

<style lang="less" scoped>
code {
  padding: 0;
  white-space: pre-wrap;
}
</style>

看见这行代码的raw没有:await import(`@packages/${props.compName}/doc/${props.demoName}.vue?raw`)

如果不写这个,嘿!您猜怎么着。

 
posted @ 2024-07-17 00:27  叶乘风  阅读(3)  评论(0编辑  收藏  举报