React中组件创建使用和Vue中组件创建使用的区别

一、Vue中组件的创建和使用

1、基本示例

// 定义一个名为 button-counter 的新组件
Vue.component('button-counter', {
  data: function () {
    return {
      count: 0
    }
  },
  template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
})

2、组件是可复用的 Vue 实例,且带有一个名字:在这个例子中是 button-counter
(1) 我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用:

<div id="components-demo">
  <button-counter></button-counter>
</div>
new Vue({ el: '#components-demo' })

(2)注意

因为组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 data、computed、watch、methods
以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项

二、React中组件的创建和使用

1、React中,组件的创建和使用有两种方式:

(1)使用ES6中的class(即:类)来定义React中的组件
(2)编写JavaScript 函数从而来定义React中的组件

2、第一种,使用ES6中的class(即:类)来定义React中的组件

(1)在自定义的app.jsx中,定义APP组件:

import React from "react";

//1、创建组件的第一种方式:用类的形式创建组件,Hook形式
class App extends React.Component{
  //渲染函数
  render() {
    return (
      <h1>你好,react组件</h1>
    )
  }
}

export default App;

(2)在自定义的index.js中,使用App组件:

//导入App组件
import App from './app';
//React.render和ReactDOM.render的使用区别见上一篇博客
ReactDOM.render(
  <App></App>,//使用A组件
  document.getElementById('root')//将App组件挂载到id为root的元素里面
);

(3)注意:

1)组件文件的后缀可以是js,也可以是jsx, 使用jsx后缀的组件文件时,vscode提示词更多

2)一个React项目,是由成千上万个组件组成,组件之间环环嵌套

3、第二种,编写JavaScript 函数从而来定义React中的组件
(1)定义组件最简单的方式就是编写 JavaScript 函数:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

(2)该函数是一个有效的 React 组件,因为它接收唯一带有数据的 “props”(代表属性)对象与并返回一个 React 元素。这类组件被称为“函数组件”,因为它本质上就是 JavaScript 函数。

4、渲染组件
(1)之前,我们遇到的 React 元素都只是 DOM 标签:

const element = <div />;

(2)不过,React 元素也可以是用户自定义的组件:

const element = <Welcome name="Sara" />;

(3)当 React 元素为用户自定义组件时,它会将 JSX 所接收的属性(attributes)以及子组件(children)转换为单个对象传递给组件,这个对象被称之为 “props”。例如,这段代码会在页面上渲染 “Hello, Sara”:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

const element = <Welcome name="Sara" />;
ReactDOM.render(
  element,
  document.getElementById('root')
);

(4)让我们来回顾一下这个例子中发生了什么:

1、我们调用 ReactDOM.render() 函数,并传入 <Welcome name="Sara" /> 作为参数。
2、React调用 Welcome 组件,并将 {name: 'Sara'} 作为 props 传入。
3、Welcome 组件将 <h1>Hello, Sara</h1> 元素作为返回值。
4、React DOM 将 DOM 高效地更新为 <h1>Hello, Sara</h1>

(5)注意:组件名称必须以大写字母开头。

1、React 会将以小写字母开头的组件视为原生 DOM 标签。 例如,<div /> 代表 HTML 的 div 标签,而<Welcome /> 则代表一个组件, 并且需在作用域内使用 Welcome。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值