javascript - VUE - 为什么不在 VUE 中创建这个 DOM 元素?
问题描述
问题:以下脚本创建了一个 div,并且应该附加到另一个 div。我正在尝试在此组件中实现 vanilla javascript。如何创建这个 DOM 元素?
这是组件:
<template>
<div class="backdrop" @click="closeModal">
<div class="modal">
<div id="elementContainer">{{ createDiv }}</div>
</div>
</div>
<script>
export default {
props: [ 'elementSummary', 'elementName', 'elementSymbol', 'elementNumber', 'elementPhase',
'elementShell', 'elementDensity' ],
methods: {
createDiv(){
const newDiv = document.createElement('div')
let divContainer = document.getElementById("elementContainer").appenedChild(newDiv)
}
}
解决方案
它不起作用,因为您正在尝试插入函数定义。
如果您想在单击时附加一个新的 div,请在您的modal
组件中创建一个本地化状态。在单击时切换该状态并使用v-if
指令动态附加该 div
export default {
// vue component state
data: function () {
return {
showContent: false // we'll use this to show/hide the dynamic div
}
},
props: [],
methods: {
/**
* update state on click
**/
createDiv(){
this.showContent = !this.showContent;
}
}
}
在您的模板中
<template>
<div class="backdrop" @click="closeModal">
<div class="modal">
<div id="elementContainer">
<div v-if="showContent>
...
</div>
</div>
</div>
</div>
</template>
当showContent
值更改时,vue
将相应地删除或附加其附加v-if
属性的子树。
推荐阅读
- login - Symfony 4 User、UserRoles 和 Roles ORM 关联用于登录
- javascript - $_GET 在上传图片
- python - 在 python 中声明“MUL key”字段。(django 框架)
- visual-c++ - 为什么即使我指定了静态库,Visual Studio 也总是尝试寻找动态提升库
- wordpress - 找不到 Wordpress 极简样式表来更改显示税的跨度
- java - Java 多态转换 - 运行时错误 ClassCastException
- html - 排列奇怪的视差滚动页面
- java - 节点字符串未正确打印输出
- php - PHP 和安全的贝宝支付
- javascript - 在用户输入上使用 setTimeOut 来触发事件