V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vue.js
coolair
V2EX  ›  Vue.js

Vue 有办法把一大段 html 代码定义为一个变量吗?

  •  
  •   coolair · 35 天前 · 1956 次点击
    这是一个创建于 35 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <template>
        <package v-if="a">
            <same-node>
                <lots-nodes />
            </same-node>
        </package >
        <same-node v-else>
            <lots-nodes />
        </same-node>
    <template>
    

    </lots-nodes /> 这里有很多个 elements,这样就有很大一段重复了,有什么办法解决吗?

    19 条回复    2021-09-29 15:17:12 +08:00
    liyang5945
        1
    liyang5945   35 天前
    v-html 绑定一个函数,函数里返回 html 字符串
    horseInBlack
        2
    horseInBlack   35 天前
    没看懂你这什么意思,下意识觉得这不是组件吗?定义好然后引用不就行了。
    ayase252
        3
    ayase252   35 天前
    <same-node /> 不能抽成一个组件?
    Rheinmetal
        4
    Rheinmetal   35 天前
    element ui 有的组件支持 htmlstring 或者 vnode
    chairuosen
        5
    chairuosen   35 天前
    正经解法是,用 render 方法,https://cn.vuejs.org/v2/guide/render-function.html
    vivalavida000
        6
    vivalavida000   35 天前
    抽组件啊
    jguo
        7
    jguo   35 天前
    一般来说用这些前端框架之后就不该再在 html 层面考虑问题了
    dfkjgklfdjg
        8
    dfkjgklfdjg   35 天前
    重复的部分继续组件化,然后 import 进来
    freedomT
        9
    freedomT   35 天前   ❤️ 2
    <component is="xxx" />
    wellsc
        10
    wellsc   35 天前
    为什么会有这种问题
    2i2Re2PLMaDnghL
        11
    2i2Re2PLMaDnghL   35 天前
    《分治》
    cyrbuzz
        12
    cyrbuzz   35 天前
    可以用 #9 的方法,

    ```

    <components :is="a ? 'package' : 'div'">
    <same-node>
    <lots-nodes />
    </same-node>
    </components>
    ```
    John60676
        13
    John60676   34 天前
    1. 抽组件
    2. 写 render 函数
    darknoll
        14
    darknoll   34 天前
    is 或者 render
    pluvet
        15
    pluvet   33 天前
    jsx?
    shilianmlxg
        16
    shilianmlxg   24 天前
    谢谢大佬 学到了。有类似 学习如何封装组件的文章或者心得嘛。感觉自己写的代码不知道如何抽出来
    @cyrbuzz
    cyrbuzz
        17
    cyrbuzz   24 天前
    @shilianmlxg

    emmm,多造轮子?

    没看过类似文章,我自己是先把轮子造出来,不好用就看看难用在什么地方继续造= =。
    shilianmlxg
        18
    shilianmlxg   24 天前
    @cyrbuzz 确实没试着造过轮子,谢谢大佬
    cyrbuzz
        19
    cyrbuzz   24 天前
    @shilianmlxg

    大佬客气~。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1203 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 16ms · UTC 23:58 · PVG 07:58 · LAX 16:58 · JFK 19:58
    ♥ Do have faith in what you're doing.