举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > vue3.0操作dom Vue 3.0 选项 DOM

vue3.0操作dom Vue 3.0 选项 DOM

2023-03-16 01:17 VUE3教程

vue3.0操作dom Vue 3.0 选项 DOM

vue3.0操作dom

Vue 3.0 是一款非常流行的前端框架,它可以帮助开发者快速构建出功能丰富的 Web 应用。Vue 3.0 中新增了一些特性,其中之一就是对 DOM 操作的改进。

Vue 3.0 中新增了一个名为 v-dom 的 API,它可以让开发者在不使用任何 JavaScript 代码的情况下直接操作 DOM 元素。v-dom API 提供了一系列方法,可以让开发者在不使用 JavaScript 的情况下直接修改 DOM 元素的样式、属性、内容等。

// 设置元素的 class 属性
this.$vdom.setAttribute(element, 'class', 'my-class');
// 设置元素的 style 属性
this.$vdom.setStyle(element, 'background-color', 'red');
// 设置元素的 innerHTML 属性
this.$vdom.setInnerHTML(element, 'Hello World!'); 

此外,Vue 3.0 还新增了一个名为 v-on 的 API,它可以让开发者在不使用 JavaScript 代码的情况下直接监听 DOM 元素上的事件。v-on API 提供了一系列方法,可以让开发者在不使用 JavaScript 的情况下直接监听 DOM 元素上的 click、mouseover、keyup 等事件。

// 监听 click 事件 
this.$vdom.on(element, 'click', () => { console.log('clicked!') });   // 监听 mouseover 事件   this.$vdom.on(element, 'mouseover', () => { console.log('mouseovered!') });   // 监听 keyup 事件   this.$vdom.on(element, 'keyup', () => { console.log('keyuped!') });    

最后,Vue 3.0 还新增了一个名为 v-refs 的 API,它可以让开发者在不使用 JavaScript 代码的情况下快速获得 DOM 元素。v-refs API 提供了一套方法,可以让开发者在不使用 JavaScript 的情况下快速获得页面上所有已命名元素或已标识元素。

// 通过 refs 获得所有已命名元素 const namedElements = this.$refs; // 通过 refs 获得所有已标识元素 const labeledElements = this.$refs['myLabel']; 

总之,Vue 3.0 针对 DOM 操作进行了大量优化,新增加的 v-dom、v-on、v-refs API 这三大特性都能够大大减少开发者对 JavaScript 代码量要求,并提升效率。

Vue 3.0 选项 DOM

#template

  • 类型:string

  • 详细:

一个字符串模板作为 component 实例的标识使用。模板将会替换挂载的元素。挂载元素的内容都将被忽略,除非模板的内容有分发插槽。

如果值以 # 开始,则它将被用作 querySelector,并使用匹配元素的 innerHTML 作为模板。常用的技巧是用 <script type="x-template"> 包含模板。

注意

出于安全考虑,你应该只使用你信任的 Vue 模板。避免使用其他人生成的内容作为你的模板。

注意

如果 Vue 选项中包含渲染函数,该模板将被忽略。

  • 参考

  • 生命周期图示

  • 通过插槽分发内容

#render

  • 类型:Function

  • 详细:

字符串模板的另一种选择,允许你充分利用 JavaScript 的编程功能。

  • 用法:

  <div id="app" class="demo">
    <my-title blog-title="A Perfect Vue"></my-title>
  </div>

  const app = Vue.createApp({})

  
  app.component("my-title", {
    render() {
      return Vue.h(
        "h1",           // 标签名称
        this.blogTitle  // 标签内容
      )
    },
    props: {
      blogTitle: {
        type: String,
        required: true
      }
    }
  })

  
  app.mount("#app")

注意

render 函数的优先级高于从挂载元素 template 选项或内置 DOM 提取出的 HTML 模板编译渲染函数。

  • 参考 Render Functions
阅读全文
以上是VUE中文网为你收集整理的vue3.0操作dom Vue 3.0 选项 DOM全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们