Vue Skia基于 Skia 的 2D 图形 Vue 渲染库

联合创作 · 2023-09-29 15:32

Vue Skia 是基于Skia的 2D 图形Vue渲染库 —— 使用Rust语言实现软件光栅化来执行渲染,相比原生画布占用更少的内存,不过目前仍然是一个实验项目;此外使用层面完全基于Vue语法。

 

示例

$ npm i vue-skia

main.ts

import { createApp } from "vue";
import App from "./App.vue";
import { VueSkia } from 'vue-skia'

const app = createApp(App);
app.use(VueSkia);
app.mount("#app");

App.vue

<template v-if="!loading">
  <v-surface :width="360" :height="360">
    <v-rect :x="10" :y="220" :width="30" :height="30" color="cyan" :style="'fill'" />
    <v-line :strokeWidth="8" color="black" :p1="[100, 260]" :p2="[50, 285]" />
    <v-round-rect :x="220" :y="50" :width="80" :height="80" :r="10" color="fuchsia" :style="'stroke'" />
    <v-circle :cx="200" :cy="260" :r="50" :style="'stroke'" color="fuchsia" />
    <v-points :points="[
        [138, 10],
        [178, 90],
        [266, 103],
        [202, 165],
        [217, 254],
        [138, 212],
        [59, 254],
        [74, 165],
        [10, 103],
        [98, 90],
        [138, 10],
      ]" :style="'fill'" :strokeWidth="1" :color="'rgba(200, 255, 0, 0.7)'" />
  </v-surface>
</template>

<script lang="ts">
import { defineComponent } from "vue";
import launch, { VSurface, VRect, VCircle, VRoundRect, VLine, VPoints } from "vue-skia";

export default defineComponent({
  name: "HelloWorld",
  components: {
    VSurface,
    VRect,
    VCircle,
    VRoundRect,
    VLine,
    VPoints
  },
  data() {
    return {
      loading: true,
    };
  },
  mounted() {
    launch().then(() => {
      this.loading = false;
    });
  },
});
</script>
浏览 3
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报