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

2021 年 9 月 18 日
 coolair
<template>
    <package v-if="a">
        <same-node>
            <lots-nodes />
        </same-node>
    </package >
    <same-node v-else>
        <lots-nodes />
    </same-node>
<template>

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

3754 次点击
所在节点    Vue.js
20 条回复
liyang5945
2021 年 9 月 18 日
v-html 绑定一个函数,函数里返回 html 字符串
horseInBlack
2021 年 9 月 18 日
没看懂你这什么意思,下意识觉得这不是组件吗?定义好然后引用不就行了。
ayase252
2021 年 9 月 18 日
<same-node /> 不能抽成一个组件?
Rheinmetal
2021 年 9 月 18 日
element ui 有的组件支持 htmlstring 或者 vnode
chairuosen
2021 年 9 月 18 日
正经解法是,用 render 方法,https://cn.vuejs.org/v2/guide/render-function.html
vivalavida000
2021 年 9 月 18 日
抽组件啊
jguo
2021 年 9 月 18 日
一般来说用这些前端框架之后就不该再在 html 层面考虑问题了
94
2021 年 9 月 18 日
重复的部分继续组件化,然后 import 进来
freedomT
2021 年 9 月 18 日
<component is="xxx" />
wellsc
2021 年 9 月 18 日
为什么会有这种问题
2i2Re2PLMaDnghL
2021 年 9 月 18 日
《分治》
cyrbuzz
2021 年 9 月 18 日
可以用 #9 的方法,

```

<components :is="a ? 'package' : 'div'">
<same-node>
<lots-nodes />
</same-node>
</components>
```
John60676
2021 年 9 月 19 日
1. 抽组件
2. 写 render 函数
darknoll
2021 年 9 月 19 日
is 或者 render
pluvet
2021 年 9 月 20 日
jsx?
shilianmlxg
2021 年 9 月 29 日
谢谢大佬 学到了。有类似 学习如何封装组件的文章或者心得嘛。感觉自己写的代码不知道如何抽出来
@cyrbuzz
cyrbuzz
2021 年 9 月 29 日
@shilianmlxg

emmm,多造轮子?

没看过类似文章,我自己是先把轮子造出来,不好用就看看难用在什么地方继续造= =。
shilianmlxg
2021 年 9 月 29 日
@cyrbuzz 确实没试着造过轮子,谢谢大佬
cyrbuzz
2021 年 9 月 29 日
@shilianmlxg

大佬客气~。
chenjiangui998
2021 年 11 月 3 日
抽组件和 render 改动都大
比较好的做法是实现一个通用 Node 组件可以挂载任意 Html, Vnode 或者 组件, 类似 react 的高阶组件

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/802763

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX