VUE语法-$refs和ref属性的使用

1、$refs和ref属性的使用

1、$refs:一个包含 DOM 元素和组件实例的对象,通过模板引用注册。

2、ref实际上获取元素的DOM节点

3、如果需要在Vue中操作DOM我们可以通过ref和$refs这两个来实现

总结:$refs可以获取被ref属性修饰的元素的相关信息。

1.1、$refs和ref使用-非组件环境

$refs f的使用至少需要写在mounted中,等待组件渲染结束,否则获取不到信息。

在下面的案例中,我们将template中的div加入属性ref=”comp2”,并打算在mounted中获取相关的DOM信息。

注意点:这是是没有使用组件的用法,后面有组件的用法。




    
    
    
    Document
    


    

1.1.1、获取名称为comp2的ref节点

核心代码:this.$refs.comp2

mounted(){
        console.log(this.$refs.comp2)
},

VUE语法-$refs和ref属性的使用_第1张图片

1.1.2、获取名称为comp2节点中的值

核心代码:this.$refs.comp2.innerHTML

mounted(){
        console.log(this.$refs.comp2)
        console.log(this.$refs.comp2.innerHTML)
},

af761531d8c34d23a8e6aaf642ee36cf.png

1.1.3、获取名称为comp2节点中属性的值

核心代码:this.$refs.comp2.attributes.name

mounted(){
        console.log(this.$refs)
        console.log(this.$refs.comp2.innerHTML)
      //获取属性name的值
        console.log(this.$refs.comp2.attributes.name)
      },

VUE语法-$refs和ref属性的使用_第2张图片

1.2、$refs和ref使用-组件环境

在vue中定义了一个全局组件component2




    
    
    
    Document
    


    

1.2.1、获取到子组件comp的节点

核心代码:this.$refs.comp

mounted(){
   console.log(this.$refs.comp)
},

VUE语法-$refs和ref属性的使用_第3张图片

1.2.2、获取到子组件comp的节点中定义的函数

核心代码:this.$refs.comp.event1

mounted(){
        console.log(this.$refs.comp)
        console.log(this.$refs.comp.event1)
},

VUE语法-$refs和ref属性的使用_第4张图片

1.2.3、获取到子组件comp的节点data中定义的属性值

核心代码:this.$refs.comp.name

mounted(){
        console.log(this.$refs.comp)
        console.log(this.$refs.comp.event1)
        console.log(this.$refs.comp.name)
      },

VUE语法-$refs和ref属性的使用_第5张图片

1.2.4、获取到子组件comp的节点中template的值

核心代码:this.$refs.comp.$el

      mounted(){
        console.log(this.$refs.comp)
        console.log(this.$refs.comp.event1)
        console.log(this.$refs.comp.name)
        console.log(this.$refs.comp.$el)
      },

VUE语法-$refs和ref属性的使用_第6张图片

1.2.5、获取到子组件comp的节点中template中元素属性的值

核心代码:this.$refs.comp.$el.attributes.name

      mounted(){
        console.log(this.$refs.comp)
        console.log(this.$refs.comp.event1)
        console.log(this.$refs.comp.name)
        console.log(this.$refs.comp.$el)
        console.log(this.$refs.comp.$el.attributes.name)
      },

VUE语法-$refs和ref属性的使用_第7张图片

1.2.6、获取到子组件comp的节点中template中元素的值

核心代码:this.$refs.comp.$el.innerHTML

mounted(){
        console.log(this.$refs.comp)
        console.log(this.$refs.comp.event1)
        console.log(this.$refs.comp.name)
        console.log(this.$refs.comp.$el)
        console.log(this.$refs.comp.$el.attributes.name)
        console.log(this.$refs.comp.$el.innerHTML)
      },

VUE语法-$refs和ref属性的使用_第8张图片

1.2.7、获取到子组件comp的节点中template中元素的值

核心代码:this.$refs.comp.$data

$data能够获取我们定义在data中的参数。也就是

data(){

        return {

          name:"晓春111"

        } }

的值

 mounted(){
        console.log(this.$refs.comp)
        console.log(this.$refs.comp.event1)
        console.log(this.$refs.comp.name)
        console.log(this.$refs.comp.$el)
        console.log(this.$refs.comp.$el.attributes.name)
        console.log(this.$refs.comp.$el.innerHTML)
        console.log(this.$refs.comp.$data)
      },

VUE语法-$refs和ref属性的使用_第9张图片

1.2.8、获取子组件comp中template自定义属性

核心代码:this.$refs.comp.$options

  mounted(){
        console.log(this.$refs.comp)
        console.log(this.$refs.comp.event1)
        console.log(this.$refs.comp.name)
        console.log(this.$refs.comp.$el)
        console.log(this.$refs.comp.$el.attributes.name)
        console.log(this.$refs.comp.$el.innerHTML)
        console.log(this.$refs.comp.$data)
        console.log(this.$refs.comp.$options)
      },

VUE语法-$refs和ref属性的使用_第10张图片

 

 

你可能感兴趣的:(VUE实战,vue.js,refs使用,ref属性使用)