首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >证实延迟加载tiptap编辑器

证实延迟加载tiptap编辑器
EN

Stack Overflow用户
提问于 2021-03-17 20:15:58
回答 1查看 177关注 0票数 0

我的项目JS大约是680kb。我已经添加了vuetify tiptap编辑器,现在JS是1338kb。

我在https://www.npmjs.com/package/tiptap-vuetify#installation中像这样加载插件

vuetify.js

代码语言:javascript
复制
import Vue from 'vue'
import Vuetify from 'vuetify/lib'
import { TiptapVuetifyPlugin } from 'tiptap-vuetify'
import 'tiptap-vuetify/dist/main.css'

const vuetify = new Vuetify()

Vue.use(Vuetify)
Vue.use(TiptapVuetifyPlugin, {
    // the next line is important! You need to provide the Vuetify Object to this place.
    vuetify, // same as "vuetify: vuetify"
    // optional, default to 'md' (default vuetify icons before v2.0.0)
    iconsGroup: 'mdi'
})

然后我在一个组件(Editor.vue)中使用tiptap

代码语言:javascript
复制
<tiptap-vuetify v-if="!disabled"
        v-model="content"
        :extensions="extensions"
        :disabled="disabled"
    />

JS:

代码语言:javascript
复制
import { TiptapVuetify, Heading, Bold, Italic, Strike, Underline, Code, Paragraph, BulletList, OrderedList, ListItem, Link, Blockquote, HardBreak, HorizontalRule, History } from 'tiptap-vuetify'
components: { TiptapVuetify },
  data() {
    return {
      // declare extensions you want to use
      extensions: [
        History,
        Blockquote,
        Link,
        Underline,
        Strike,
        Italic,
        ListItem,
        BulletList,
        OrderedList,
        [Heading, {
          options: {
            levels: [1, 2, 3]
          }
        }],
        Bold,
        Code,
        HorizontalRule,
        Paragraph,
        HardBreak
      ],
      // starting editor's content
      content: this.model
    }
  }

有没有办法只在需要的时候加载或者减少chunk-vendors.js?

EN

回答 1

Stack Overflow用户

发布于 2021-06-03 03:16:43

我试着寻找解决方案,但似乎没有任何信息。经过几次尝试,包括通过cdn加载tiptap,我设法将其从主包中分离出来。

基本上需要做的是从所需的组件内部调用Vue.use,该组件本身是延迟加载的。唯一要记住的是Vuetify实例需要存储,加载脚本的人可以访问它。

我使用的是Nuxt和ts支持,所以对我来说,它看起来像这样:

代码语言:javascript
复制
import { Component, Vue } from "nuxt-property-decorator";

import {
    TiptapVuetify,
    TiptapVuetifyPlugin,
    // ...other imports
} from "tiptap-vuetify";

import dvue from 'vue';
dvue.use(TiptapVuetifyPlugin, {
    vuetify: window['Vuetify']
});

@Component({ components: { TiptapVuetify } })
export default class HtmlEditor extends Vue {}

保存实例的Nuxt插件:

代码语言:javascript
复制
export default ({ app }) => {
    if (window) {
        window["Vuetify"] = app.vuetify;
    }
};

就是这样,tiptap-vuetify组件在延迟加载的组件中工作,所以如果需要就加载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66672928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档