JavaScript 中存入一段 HTML 代码,运行的时候加入到 DOM 中,最佳操作是什么

2020-10-03 10:19:16 +08:00
 loveuloveme

HTML 代码比较多,所以希望是可以整块复制粘贴的,或微调一下的。

1871 次点击
所在节点    问与答
18 条回复
crclz
2020-10-03 10:27:43 +08:00
前端工程化还是 angular react vue 擅长。

如果是前后端不分离的话,可以考虑后端模板引擎渲染那些公用的 html 代码。
loveuloveme
2020-10-03 10:29:53 +08:00
@crclz 这个需求想用原生 JavaScript, 把一段 HTML 代码直接写在 JavaScript
Jirajine
2020-10-03 10:30:49 +08:00
直接 jsx ?
lichdkimba
2020-10-03 10:34:00 +08:00
loveuloveme
2020-10-03 10:37:07 +08:00
@Jirajine JSX allows us to write HTML in React. JSX 可以在原生 JavaScript 中用吗?官方文档好像没提
Cbdy
2020-10-03 10:40:51 +08:00
React
crclz
2020-10-03 10:42:59 +08:00
服务端把公用的 html 片段以静态文件的方式提供,前端使用 JQuery.load 方法加载 https://api.jquery.com/load/ ,或者使用原生 js 请求+手动修改 dom 。
hoyixi
2020-10-03 10:47:07 +08:00
1 简单的:JS ( ES6+)的 string interpolation + 原生 DOM 操作(比如 append )
2 复杂的,比如带点渲染逻辑的:Handlebars / Mustache,JS 模板库
loveuloveme
2020-10-03 10:51:03 +08:00
@crclz 不想额外多一个请求,想要直接放在 JavaScript 代码里
xiangyuecn
2020-10-03 10:59:19 +08:00
很多语言多行文本支持的都很烂,尤其是 java (上古时期的 JavaScript 照搬的 java 语法)

虽然 es6 提供了一个简陋版,不过该难用时还是难用,里面还是得转义`,界定符号都不提供,订标准的那坨人喂猪的嘛

`:docx:
<div>
这么简单的语法支持一下就这么难 `遇到 markdown 就瞎比` 的神奇语法
</div>
:docx:`

php 的那个 doc 语法表面不错,但几个高度相似语法就懒得讲了。所以我选择自己编译 js 自定义的语法,可以玩出花来
flasktest1
2020-10-03 11:00:46 +08:00
cmdOptionKana
2020-10-03 11:43:53 +08:00
@flasktest1 这个 template 非常好用,我很爱用,有了这个写简单页面很爽,不比 vue 差。
cmdOptionKana
2020-10-03 11:45:31 +08:00
@loveuloveme 用 createContextualFragment 想微调不方便吧?建议用 template
gouflv
2020-10-03 11:56:26 +08:00
用模板能解决的问题,居然说用 react,前端真不一样了现在
loveuloveme
2020-10-03 12:07:24 +08:00
@cmdOptionKana 这个做好后不用调整的, 直接引用 JS 就可以用了,如果要调整的话,整段复制到模版里,改后直接复制过来就行。 这是一个弹出模块,这样做的好处,就是哪里需要,直接引用 JS ( JS 里也不会有额外的模版请求)就行,
Jirajine
2020-10-03 12:09:00 +08:00
@loveuloveme 预编译一下啊,非要不愿意编译那只能引用 babel 运行时编译。
jsx 的好处是容易维护。
zy445566
2020-10-03 22:59:42 +08:00
我是用 webpack 打包,然后 import 进来的,变量就是 HTML 字符串
codingguy
2020-10-04 09:14:07 +08:00

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

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

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

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

© 2021 V2EX