vue新增节点的方法?

vue新增节点的方法?,第1张

接下来我们主要讨论在什么情况下新增节点。之所以讨论什么情况下需要新增节点,本质上是为了使用JavaScript的计算成本来换取DOM的 *** 作成本。如果一个节点已经存在于DOM中,那就不需要重新创建一个同样的节点去替换已经存在的节点。事实上,只有那些因为状态的改变而新增的节点在DOM中并不存在时,我们才需要创建一个节点并插入到 DOM中。首先,新增节点的一个很明显的场景就是,当oldVnode不存在而 vnode存在时,就需要使用vnode生成真实的DOM元素并将其插入到视图当中去。这通常会发生在首次渲染中。因为首次渲染时,DOM中不存在任何节点,所以 oldVnode是不存在的。

<div v-for="(item, index) in divList">

    <el-select v-model="item.rewardType" class="cell_width" @change="((val)=>{changeRewardType(val,index)})">

      <el-option

        v-for="itemOpt in rewardTypeList"

        :key="itemOpt.value"

        :label="itemOpt.label"

        :value="itemOpt.value"

      ></el-option>

    </el-select>

<div v-if="index!=divList.length-1" style="line-height: 114pxfont-size:32pxcursor: pointer" @click="removeSetter(index)">-</div>

            <div v-else style="line-height: 114pxfont-size:32pxcursor: pointer" @click="addSetter">+</div>

</div>

data(){

return{divList:[{rewardType:''}]}

}

            addSetter(){

                this.divList.push({rewardType:''})

            },

            removeSetter(i){

                this.divList.splice(i,1)

            }

单个子组件时直接ref=‘name’,在js中this. refs.后面是不能直接跟变量的,很简单that.$refs.name[0].scrollIntoView()加上[0]就能取到动态的节点了,然后滚动到改动态节点位置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11603199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存