ref的多种形式;

 1.字符串形式的ref

class MyDemo extends Component {
  //获取ref方式
  click = () => {
    console.log('ref组件',this.refs.inputRef)
  }
  render() {
    return (
        <div>
            <Button ref="butRef" />
            <input ref="inputRef" />
        </div>
    )
  }
}
//此种写法是将组件中所有标签的ref都统一集放在this组件(myDemo)的refs中;

 2.回调形式的ref

class MyDemo extends Component {
  //获取ref方式
  click = () => {
    console.log('ref组件',this.btnRef)
  }
  render() {
    return (
        <div>
            <Button ref={(c) => {this.btnRef = c;}} />
            <input ref={(c) => {this.inputRef = c;}} />
        </div>
    )
  }
}
//需注意的是(执行次数问题),这种写法有个点就是,mydemo组件每执行一次render,ref中的回调函数都会执行一次;且ref每次都会清空为null,然后再获取当前值;
//于是,内绑定函数可以避免执行次数的问题,写法如下:
  render() {
  this.btnRef=(c)=>{
      //获取ref方式
      console.log(c)
  }
    return (
        <div>
            <Button ref={this.btnRef} />
        </div>
    )
  }

 3.creatRef的形式

class MyDemo extends Component {
    //注意:“专人专用”
    this.btnRef = React.creatRef();
    this.inputRef = React.creatRef();
  //获取ref方式
  click = () => {
    console.log('ref组件',this.btnRef)
  }
  render() {
    return (
        <div>
            <Button ref={this.btnRef} />
            <input ref={this.inputRef}/>
        </div>
    )
  }
}

备注:

ref属于标签或者子组件属性;

refs属于组件或父组件的属性,和props同级;

refs相当于是组件中所有ref的集放地儿

Vue.js 是一个流行的前端JavaScript框架,用于构建用户界面和单页应用程序。它由尤雨溪(Evan You)创建,并且受到AngularJS和ReactJS的启发。Vue.js的核心库只关注视图层,易于上手,同时它还能够通过插件的形式提供更广泛的解决方案。 `ref` 是 Vue 中的一个属性,它是一个特殊的属性,用于给元素或子组件注册引用信息。引用信息将会被存储在父组件的 `$refs` 对象上。如果是在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果是在子组件上使用,则引用指向的是组件实例。 `fetch-data` 不是 Vue.js 的官方属性或方法,但通常指的是在 Vue 应用中从服务器获取数据的过程。在 Vue 中,可以通过多种方式实现数据的获取,例如使用 `axios`、`fetch` 等HTTP客户端库,或者使用 Vue 的 `created` 钩子函数或者 `mounted` 钩子函数中来获取数据。 以下是一个简单的例子,展示了如何在 Vue 组件中使用 `fetch` 方法来获取数据,并将数据保存到组件的 `data` 属性中: ```javascript <template> <div> <h1>{{ title }}</h1> </div> </template> <script> export default { data() { return { title: null }; }, created() { this.fetchData(); }, methods: { fetchData() { fetch('https://api.example.com/data') .then(response => response.json()) .then(data => { this.title = data.title; }) .catch(error => console.error('Error:', error)); } } }; </script> ``` 在上面的例子中,`fetchData` 方法会在组件被创建后调用,它使用 `fetch` API 从指定的 URL 获取数据,并更新组件的 `title` 数据属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值