Vue.js 2 中如何将 VNode 数组插入到指定元素下?

Vue.js 2 中如何将 VNode 数组插入到指定元素下?

vue.js 2 vnode数组插入到指定元素下的两种解决方案

对于问题1:

解决方案1

import Vue from "vue";
import nodeRenderer from "./RenderNode";
const DetailConstructor = Vue.extend(nodeRenderer);
export default {
  props: {
    fullText: "",
  },
  mounted() {
    // 参考 https://stackoverflow.com/a/50937178/3089701
    const detailRenderer = new DetailConstructor({
      propsData: {
        node: this.$slots.default,
      },
    });
    console.log(detailRenderer.$mount(), detailRenderer.$el.outerHTML); // $el是dom对象,任意操作
  },
};

对应RenderNode.js:

export default {
  props: ["node"],
  render(h, context) {
    return this.node ? this.node : "";
  },
};

解决方案2

const slot = this.$slots.default[0];
console.log(slot.context.$mount(), slot.context.$el.innerHTML);

对于问题2:拿到DOM后,可以进行任意操作。

以上就是Vue.js 2 中如何将 VNode 数组插入到指定元素下?的详细内容,更多请关注其它相关文章!