Nieve
V2EX  ›  Vue.js

Vue 或者 Js 如何做到像浏览器一样拖拽标签页把标签页变成一个独立窗口并保留标签页原来的数据?

  •  
  •   Nieve · May 10, 2022 · 4230 views
    This topic created in 1641 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  May 11, 2022
    好像标题造成了误解,我举个例子

    <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
    <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
    <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
    <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
    <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
    </el-tabs>

    比如说有 element 的 tabs ,可以把其中的任一 tab 拖拽下来并生成一个可以自由移动的 div,div 里面的内容是之前 tab 面板的内容
    13 replies  •  2022-05-12 17:10:52 +08:00
    icebay
    icebay
    May 10, 2022
    1
    iframe 应该是最简单的。
    codehz
    codehz
    May 10, 2022
    2
    vanilla 里可以直接用 appendChild 等方式移动元素在 dom 树里的位置
    (当然你要原生窗口的话就麻烦了
    cangcang
    cangcang
    May 10, 2022
    3
    生成一个新的独立窗口,把数据传进去,再把标签页销毁。
    liuzhaowei55
    liuzhaowei55
    May 10, 2022 via iPhone
    4
    浏览器数据存储 indexeddb 然后新开标签重新把数据加载出来,看 3 楼回答想到的
    Opportunity
    Opportunity
    May 10, 2022
    5
    @codehz 其实可以操作原生窗口,就是很难弄对

    child = window.open('about:blank')
    child.document.body = window.child.document.body

    custom elements 的 adoptedCallback 不就是干这个的
    duduaba
    duduaba
    May 11, 2022
    6
    前端就是你永远也想不到客户有什么奇葩的需求。
    Nieve
    Nieve
    OP
    May 11, 2022
    7
    @IceBay 已修改描述
    Nieve
    Nieve
    OP
    May 11, 2022
    8
    @codehz 已修改描述
    Nieve
    Nieve
    OP
    May 11, 2022
    9
    @cangcang 已修改描述
    Nieve
    Nieve
    OP
    May 11, 2022
    10
    @liuzhaowei55 已修改描述
    Nieve
    Nieve
    OP
    May 11, 2022
    11
    @Opportunity 已修改描述
    hchow
    hchow
    May 12, 2022
    13
    vue3 Teleport 组件传送门感觉可以做: https://staging-cn.vuejs.org/guide/built-ins/teleport.html
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   879 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 21:24 · PVG 05:24 · LAX 13:24 · JFK 16:24
    ♥ Do have faith in what you're doing.