007、ref属性使用

是什么

ref被用来给元素或者组件注册引用信息。

什么时间注册

本身作为渲染结果创建的,初始渲染时不存在,实例挂载之后才会被创建。

在哪里获取

引用信息将会注册在父组件的$refs对象上。但是和v-for一起引用时,则引用信息会是一个包含DOM节点或者组件实例的数组。

指向哪里

1、若在普通的DOM上使用,引用的指向就是DOM元素;
2、若在子组件上,引用的就指向组件实例。

能做些什么

在vue中直接操作DOM

怎么用

一、模板中使用
1、组件
HTML部分:

<template>
    <div>{{msg1}}</div> 
    <div>{{msg2}}</div>
</template>

JS部分:

export default {
    name: 'componentFirst',//组件名称
    data () {
        return {
            msg1: 'msg1',
            msg2: 'msg2'
        }
    }
}

2、页面中引用
HTML:

<componentFirst ref="refName"></componentFirst>

JS:

import componentFirst from './components/componentFirst';
export default {
    data () {},
    components: {
        componentFirst
    },// 注册局部组件
    // 实例创建之后,但是还没有被挂载
    created () {
        let _this = this;
        _this.$nextTick( () => {
            _this.$refs.refName.msg1 = '修改后的msg1';
            // _this.$refs.组件中ref的值.该组件中用到的data()值
        })
        /*
        _this.$nextTick(() => {});
        此方法为了将回调延迟到下次DOM更新之后执行。
        在修改了数据之后会立即使用,可以在mountedupdated中使用。此时,相当于所有的view都会被重新渲染。
        */
    },
    // 可以单独写在mountedmounted () {
        this.$refs.refName.msg = '在mounted中的msg';
    }
}

二、DOM中使用
1、HTML

<div ref="domRef" v-for="(item,index) in arr" @click="fn(index)">{{itme}}</div>

2、JS

export default {
    data () {
        return {
            arr: [1,2,3]
        }
    },
    methods: {
        fn (index) {
            this.$refs.domRef.innerText = index;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值