Home > Web Front-end > Vue.js > body text

How vue.js operates dom

coldplay.xixi
Release: 2023-01-13 00:45:05
Original
4764 people have browsed it

Vue.js method of operating dom: 1. Native js operates dom, the code is [const dom = getElementById('box')]; 2. Use vue official method ref, the code is [< div class =“set” ref=“up”>].

How vue.js operates dom

The operating environment of this tutorial: Windows 7 system, Vue version 2.9.6, DELL G3 computer. This method is suitable for all brands of computers.

【Recommended related articles: vue.js

vue.js method of operating dom:

1. Native js operation dom

const dom = getElementById(‘box&#39;)
Copy after login

2. Vue official method: ref

The ref in vue is to "extract the current dom element" "Come out", just pass this.$refs to get

< div class=“set” ref=“up”>
Copy after login

.set is the dom object we want to operate, and its ref is up

@click=“Alert”
Copy after login

to the parent The element has a click event,

Next let’s write this method

methods:{
  this.$refs.addAlert.style.display = “block”;
}
Copy after login

Do you still need CSS?

Then I’ll paste all the code here and you can see for yourself

<template>
    <div id="app">
        <div class="index-box">
            <!--新增按钮-->
            <input type="button" id="DbManagement-addBtn" @click="showAddAlert" value="新增">
            <!--新增数据源弹框-->
            <div class="addDbSource-alert" ref="addAlert">
                <div class="addAlert-top">
                    <!--添加数据源-->
                    <input type="button" value="×" class="addAlert-close" @click="closeAddAlert">
                </div>
                <div class="addAlert-content">
                    <div style="height: 1000px;"></div>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
    export default {
        name: "Index",
        data(){
            return {
            }
        },
        methods:{
            // 点击新增按钮,弹出新增数据源的弹框
            showAddAlert(){
                this.$refs.addAlert.style.display = "block";
            },
            // 点击 × 关闭新增数据源的弹框
            closeAddAlert(){
                this.$refs.addAlert.style.display = "none";
            },
        },
        created(){
        }
    }
</script>
<style scoped>
    #app{
        width:100%;
        height:100%;
        overflow-y:auto;
    }
    /* 容器 */
 .index-box{
  width: 100%;
  height: 100%;
  background: #212224;
  display: flex;
 }
 /* 添加数据源按钮 */
 #DbManagement-addBtn {
  width: 100px;
  height: 45px;
  border: none;
  border-radius: 10px;
  background: rgba(29, 211, 211, 1);
  box-shadow: 2px 2px 1px #014378;
  margin-left: 20px;
  margin-top: 17px;
  cursor: pointer;
  font-size: 20px;
 }
 /*新增数据源弹框*/
 .addDbSource-alert{
  position: fixed;
        top:0;left:0;right:0;bottom:0;
        margin:auto;
  width: 4rem;height: 4rem;
  background: #2b2c2f;
  display: none;
 }
 /*新增弹框头部*/
 .addAlert-top{
  width: 100%;
  height: 50px;
  background: #1dd3d3;
  line-height: 50px;
  font-size: 20px;
  box-sizing: border-box;
  padding-left: 20px;
 }
 /*新增弹框关闭*/
 .addAlert-close{
  background: #1dd3d3;
  border: none;
  font-size: 30px;
  cursor: pointer;
  float: right;
  margin-right: 20px;
  margin-top: 5px;
 }
 /*新增弹框内容部分*/
 .addAlert-content{
  width: 100%;
  box-sizing: border-box;
  padding: 0px 30px 20px;
 }
 /* 滚动条效果 */
 /* 设置滚动条的样式 */
 .addAlert-content::-webkit-scrollbar {
  width: 5px;
 }
 /* 滚动槽 */
 .addAlert-content::-webkit-scrollbar-track {
  /* -webkit-box-shadow: inset 0 0 6px rgba(40, 42, 44, 1);
  border-radius: 10px; */
 }
 /* 滚动条滑块 */
 .addAlert-content::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background: rgba(29, 211, 211, 1);
  /* -webkit-box-shadow: inset 0 0 6px rgba(29, 211, 211, 1); */
 }
 .addAlert-content::-webkit-scrollbar-thumb:window-inactive {
  background: rgba(29, 211, 211, 1);
 }
</style>
Copy after login

There is more CSS than the text and scripts combined. If you can understand CSS, there is no reason why you can’t learn ref

There is also a third method, jQuery operates the dom. After reading this, I dare not use it

3. jQuery operates the dom

Just use the option of jQuery Tool, just select the corresponding dom to operate, but everyone knows that jQuery obtains elements to find all the elements on the page, which is equivalent to "looping" all elements until the required dom is found. However, vue is a single page, and jQuery obtains dom not just Get the current page of Vue, but search all from the root route. When the same element appears in other pages, it will also be obtained. Moreover, if the dom operated by jQuery is rendered based on dynamically obtained data, then the operation written in mounted The method will become invalid and must be placed in updated. This will cause some operations to be executed multiple times, so it is still not recommended to use jQuery in Vue.

Related free learning recommendations: javascript learning tutorial

The above is the detailed content of How vue.js operates dom. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template