vue 与 react 的区别 详细例子

admin2年前 (2023-07-27)it知识533

以下是一个具体例子,展示了 Vue.js 和 React 在实现一个同样的功能时的一些区别:

需求:实现一个用户列表,包括用户名和删除按钮,点击删除按钮可以删除相应的用户。

Vue.js 实现:

<template>
  <div>
    <ul>
      <li v-for="(user, index) in users" :key="index">
        <div>{{ user.name }}</div>
        <button @click="deleteUser(index)">删除</button>
      </li>
    </ul>
  </div>
</template>
<script>
export default {
  data() {
    return {
      users: [
        { name: '张三' },
        { name: '李四' },
        { name: '王五' }
      ]
    };
  },
  methods: {
    deleteUser(index) {
      this.users.splice(index, 1);
    }
  }
};
</script>

React 实现:

import React from 'react';
class UserList extends React.Component {
  state = {
    users: [
      { name: '张三' },
      { name: '李四' },
      { name: '王五' }
    ]
  };
  deleteUser = (index) => {
    this.setState((prevState) => ({
      users: prevState.users.filter((user, i) => i !== index)
    }));
  };
  render() {
    return (
      <div>
        <ul>
          {this.state.users.map((user, index) => (
            <li key={index}>
              <div>{user.name}</div>
              <button onClick={() => this.deleteUser(index)}>删除</button>
            </li>
          ))}
        </ul>
      </div>
    );
  }
}
export default UserList;

在这个例子中,Vue.js 使用模板语法和计算属性来实现数据的渲染和删除操作,而 React 使用 JSX 语法和组件来实现。在 Vue.js 中,数据和视图是双向绑定的,当数据发生变化时,视图会自动更新,而在 React 中,数据流是单向的,需要手动调用 setState 方法来更新状态并重新渲染组件。

标签: JavaScript

相关文章

JavaScript 字符串模板

模板字面量使用反引号(``)而不是引号("")来定义字符串:比如:let text = `Hello World`;使用模板字面量,可以在字...

JavaScript 可迭代对象

可迭代对象时可以使用for..of 进行迭代的对象从技术上讲,可迭代对象必须实现Symbol.iterator方法。遍历字符串你可以使用for..of循环来遍历字符串的元素:for(const&nbs...

JavaScript 的核心是 ECMAScript

JavaScript 的核心是 ECMAScript,具体来说,它包括以下几个方面:语法:JavaScript 的语法包括语句结构、变量定义、函数定义、条件语句、循环语句等。ECMAScript 标准...

JavaScript Set

JavaScript的Set(集合)是一组唯一值的集合。每个值只能在Set中出现一次。Set可以容纳任何数据类型的值。如何创建Set将数组传递给new Set()创建一个新的Set, 然后使用add(...

JavaScript Map

Map 保存键值对,其中键可以是任何数据类型。Map会记住键的原始插入顺序。Map提供表示映射大小的属性。如何创建Map 可以通过以下方式创建Javascript 映射:将数组传递给new...

Vue 报错error:0308010C:digital envelope routines::unsupported 解决方案

Error: error:0308010C:digital envelope routines::unsupported出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。