最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue使用jsmind實現(xiàn)生成腦圖的示例代碼

 更新時間:2024年03月29日 09:51:58   作者:weixin_43688734  
這篇文章主要為大家詳細介紹了Vue如何使用jsmind實現(xiàn)生成腦圖,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考一下

項目部分參數(shù):

vue:2.6.10

node:16.20.0

1、使用命令行安裝jsmind

npm i jsmind -S

2、在文件中引入jsmind,并編寫渲染jsmind的代碼

<template>
	<!-- jsmind容器 -->
    <div
      id="jsmindContainer"
      ref="jsmindContainer"
    ></div>
</template>

<script>
// 引入jsmind方法和樣式
import "jsmind/style/jsmind.css";
import jsMind from "jsmind";

// 引入獲取數(shù)據(jù)的接口
import { getProjectMind } from "@/api/projectManagement";

export default {
  data() {
    return {
      treeData: {},
      jsmind: ""
    };
  },
  created() {
    this.initData();
  },
  beforeDestroy() {
    if (this.jsmind) {
      this.jsmind.destroy();
    }
  },
  methods: {
    initData() {
      let projectId = this.$route.query.projectId;
      getProjectMind(projectId)
        .then(res => {
          if (res.code === 200) {
            this.treeData = res.data;
            const options = {
              container: "jsmindContainer", // 必選,容器ID
              editable: false, // 可選,是否啟用編輯
              theme: "asphalt", // 可選,主題
              shortcut: {
                enable: true // 禁用快捷鍵
              },
              layout: {
                hspace: 50, // 節(jié)點之間的水平間距
                vspace: 20, // 節(jié)點之間的垂直間距
                pspace: 13 // 節(jié)點與連接線之間的水平間距(用于容納節(jié)點收縮/展開控制器)
              },
              mode: "full" // 顯示模式,子節(jié)點只分布在根節(jié)點右側(cè)
            };
            // 初始化jsMind對象
            this.jsmind = new jsMind(options);

			// 讓jsmind對象顯示具體的腦圖數(shù)據(jù)
            this.jsmind.show({
              meta: {
                name: "jsMind",
                author: "",
                version: "0.1"
              },
              format: "node_tree",// 數(shù)據(jù)格式官方文檔有介紹
              data: this.treeData
            });
          }
        })
        .catch(err => {});
    }
  }
};
</script>

重啟項目,報錯unexpected token...,我還以為是引入jsmind的方法不對,后來我直接引入jsmind/es6/jsmind文件還是不行,也沒有搜索到任何解決辦法,我就嘗試安裝低版本的jsmind,安裝了0.5.0版本的jsmind,重啟項目OK了。

3、點擊腦圖部分節(jié)點,展示詳情彈窗

在準備腦圖數(shù)據(jù)的時候,我們將部分節(jié)點數(shù)據(jù)設(shè)計成了這樣:

topic里面是a標(biāo)簽,當(dāng)點擊a標(biāo)簽的時候,會觸發(fā)showTask事件,展示詳情彈窗。

但是在腦圖渲染出來之后,才發(fā)現(xiàn)在method里面注冊的showTask事件,是觸發(fā)不了的。后面嘗試著將topic數(shù)據(jù)里面的onclick換為@click,看vue能否正常將其渲染為a標(biāo)簽的點擊事件,結(jié)果還是不行,估計是因為jsmind使用了canvas,vue沒有將canvas里面的元素變?yōu)槟0鍢?biāo)簽。

怎么解決呢?我使用了window來幫忙注冊事件,這樣全局就有了showTask事件,點擊a標(biāo)簽?zāi)軌蛘S|發(fā)了。

// 因為window里面的this不是指向當(dāng)前組件,所以需要提前注冊使用
window.$$this = this;
window.showTask = function(id) {
  // 展示詳情彈窗
  window.$$this.detailShow = true;
  // 詳情彈窗獲取數(shù)據(jù)
  window.$$this.$nextTick(() => {
    window.$$this.$refs.TaskDetail.init(id);
  });
};

最后要注意在組件的beforeDestroy生命周期中,清除數(shù)據(jù):

beforeDestroy() {
  if (this.jsmind) {
    this.jsmind.destroy();
    window.showTask = undefined;
    window.$$this = undefined;
  }
}

到此這篇關(guān)于Vue使用jsmind實現(xiàn)生成腦圖的示例代碼的文章就介紹到這了,更多相關(guān)Vue jsmind生成腦圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue?UI框架的主題切換功能實現(xiàn)

    Vue?UI框架的主題切換功能實現(xiàn)

    在如今,很多網(wǎng)頁已經(jīng)可以手動切換明亮模式和黑暗模式,網(wǎng)頁的主題切換已經(jīng)成為了一個常用的需求,因此,本文將從常見框架的處理方式總結(jié)一些相關(guān)的操作,對vue?ui框架主題切換功能感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • 記一次Vue中$route序列號報錯

    記一次Vue中$route序列號報錯

    本文主要介紹了記一次Vue中$route序列號報錯,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • vue axios封裝及API統(tǒng)一管理的方法

    vue axios封裝及API統(tǒng)一管理的方法

    這篇文章主要介紹了vue axios封裝以及API統(tǒng)一管理 ,需要的朋友可以參考下
    2019-04-04
  • vue3.0基于views批量實現(xiàn)動態(tài)路由的方法(示例代碼)

    vue3.0基于views批量實現(xiàn)動態(tài)路由的方法(示例代碼)

    以前vue項目中也有很多實現(xiàn)動態(tài)路由的方法,比如有一些項目涉及權(quán)限的可能會使用api請求路由數(shù)據(jù)在來createRouter,或者本地構(gòu)建使用routes.push來動態(tài)構(gòu)建路由, 今天介紹一種新的方式來基于某個文件夾批量構(gòu)建動態(tài)路由的方法,感興趣的朋友一起看看吧
    2024-12-12
  • vue中el-tab如何點擊不同標(biāo)簽觸發(fā)不同函數(shù)的實現(xiàn)

    vue中el-tab如何點擊不同標(biāo)簽觸發(fā)不同函數(shù)的實現(xiàn)

    el-tab本身的功能是點擊之后切換不同頁,本文主要介紹了vue中el-tab如何點擊不同標(biāo)簽觸發(fā)不同函數(shù)的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 一文詳解如何在Vue3中使用jsx/tsx

    一文詳解如何在Vue3中使用jsx/tsx

    本篇文章旨在帶領(lǐng)大家快速了解和使用?Vue?中的?JSX?語法,好讓大家在?Vue?中遇到或使用?JSX?的時候能很快入手,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • Vue項目在IE瀏覽器的兼容問題及解決方法

    Vue項目在IE瀏覽器的兼容問題及解決方法

    該文章主要介紹了如何在Vue項目中解決IE瀏覽器的兼容性問題,包括解決IE不兼容axios的Promise對象、ES6語法以及polyfill的使用方法,通過配置babel-polyfill、es6-promise和轉(zhuǎn)ES5語法,解決了在IE瀏覽器中常見的兼容性問題,需要的朋友可以參考下
    2025-01-01
  • vue 輸入框輸入任意內(nèi)容返回數(shù)字的實現(xiàn)

    vue 輸入框輸入任意內(nèi)容返回數(shù)字的實現(xiàn)

    本文主要介紹了vue 輸入框輸入任意內(nèi)容返回數(shù)字的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • vue中如何將日期轉(zhuǎn)換為指定的格式

    vue中如何將日期轉(zhuǎn)換為指定的格式

    這篇文章主要介紹了vue中如何將日期轉(zhuǎn)換為指定的格式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue收集表單數(shù)據(jù)和過濾器總結(jié)

    Vue收集表單數(shù)據(jù)和過濾器總結(jié)

    這篇文章主要介紹了Vue收集表單數(shù)據(jù)和過濾器的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05

最新評論

温泉县| 繁峙县| 泽州县| 石棉县| 外汇| 团风县| 凤庆县| 平利县| 辽阳县| 鸡东县| 芜湖市| 建德市| 开江县| 道孚县| 溆浦县| 桃江县| 蒙山县| 东源县| 南木林县| 墨江| 沁源县| 临泽县| 洮南市| 耿马| 嵩明县| 乐都县| 资源县| 华阴市| 海南省| 塔河县| 萨迦县| 固始县| 吉林市| 眉山市| 沙田区| 南澳县| 宿州市| 五大连池市| 榆林市| 哈尔滨市| 佛坪县|