演示 Vue 和 React 中的 key 的作用|学习笔记

简介: 快速学习演示 Vue 和 React 中的 key 的作用

开发者学堂课程【React 入门与实战演示 Vue 和 React 中的 key 的作用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/585/detail/8086


演示 Vue 和 React 中的 key 的作用


内容介绍:

一、JavaScript 语句后是否加分号

二、演示 Vue key 的作用

三、注意事项


一、JavaScript 语句后是否加分号

可以在浏览器里面搜索,没有应不应该,只有喜不喜欢。

JavaScript 语法长得像 C-like 不代表它本质上和 C 是一类语言,所有直觉性的”当然应该加分号“都是保守的、未经深入思考的草率结论。

后面新设计的语言里可选分号的多的去了,光是”可以加分号但是大家都不加”的语言就有:

Go,Scala,Ruby,Python,Swift,Groovy...

如果[ { + - /五个符号开头的之一之前都必须加;如果不是这五种情况其他情况都可以不加

});

[1,2,3].forEach()   这一行是[开头,上一行就必须加;

[1,2,3].forEach()  这一行开头加;也可以

 

二、演示 Vue key 的作用

image.png

运行出来了,但出现警告,在数组中的每一项必须加 key 元素。React Vue key 的作用是完全一样的。

演示 Vue key 的作用

代码案例:

<!DOCTYPE html>

<html lang=”en”>

<head>

<meta charset=”UTF-8”>

<meta name=”viewport”content=”width=device-width,initial-scale=1.0”>

<meta http-equiv-”X-UA=Compatible”content=”ie=edge”>

<title>Document</title>

<script src=”./vue.js”></script>

</head>

<body>

<!--容器-->

<div id=”app”>

<ul>

<li v-for="item in list">编号:({iten.id}}-姓名: {{item.name}</li>

</ul>

</div>

<script>

const vm = new vue ( {

el: '#app ' ,

data: {

list: [

{ id: 0,name:'赢政’},

{ id: 1, name: '吕不韦},

{ id: 2, name:'嫪毐’}

]

}

})

<!--添加新名称-->

<div>

<input v-model=”uname”/>

<button @click=”add”>添加</butten>

</div>

image.png

<ul>

<li v-for=”item in list”>编号:{{item.id}}---姓名:{{item.name}}

image.png

<ul>

<li v-for=”item in list”>

<input type=”checkbox”>编号:{{item.id}}---姓名:{{item.name}}
image.png

<ul>

<li v-for=”item in list”:key=”item.id”>

<input type=”checkbox”>编号:{{item.id}}---姓名:{{item.name}}

image.png

如果在进行v-for或者map循环的时候,如果需要保持它的状态(这一项被选中了,或者没有被选中),就需要提供一个key。否则状态会混乱。

不管什么情况下,如果使用了v-for,就一定要加key

</ul>

</div>

<script> 创建script的标签

const vm new Vue({  在标签里面创建实例

e1.’#app’,

data: {

uname:’’,

list:{

{id:0,name:’嬴政’}

{id:1,name:’吕不韦’}

{id:2,name:’嫪毐’}

]

},

mothods: {

add() {

//出现一个新对象

var newuser = { id:this.list.length,name:this.uname }

this.list.push(newuser)

var newuser = { id:this.list.length,name:this.uname }

this.list.unshift(newuser)

image.png

}

}}

</script>

</body>

</html>

代码解析:

新建一个文件夹 test,找到一个 vue 的文件,放到 test 文件夹中。再新建一个testkey.html,导入 src=”./vue.js”当前目录下 vue.js,在页面上<div id=”app”>容器,

创建一个 script 标签,在标签内部创一个 vm 的实例,el 控制#app区域,

data 对象 id:0,name:嬴政,建一个数组。把这个数组渲染在页面上。添加新名称,div中<input v-model=”uname”/>,<button @click=”add”>添加</butten>。

uname 需要默认,复制添加中的方法名称放到 methods 中,拿到一个 uname,组织成一个对象 push 进去,var newuser = { id:this.list.length,name:this.uname }拼接出一个新对象。

在每一行前面加一个复选框,在文本之前放一个checkbox,把push改成unshift。id 为一类,给每一个li加上一个 key=”item.id”,如果在进行v-for或者用map循环的时候,需要保持它们的状态,选中或没被选中就是一个状态,需要保持状态,提供一个 key,否则状态会紊乱,动画必须要提供 key,不管什么情况下,只要用了v-for 都需要加 key。

找到 index.js,forEach 需要加 key,注意 React 中,需要把 key 添加给被 forEach或 map 或 for 循环的直接控制元素。


三、注意事项

注意:

React 中,需要把 key 添加给 被 forEach 或 for 循环直接控制的元素

arrStr.forEach(item => {

const tempt = <h5 key={item}>{item}</h5>

nameArr.push(temp)

})

{arrstr.map(item=><div key={item}><h3>{item)</h3></div>)}

</ div>, document.getElementById ( ' app '))

key 中直接用 Id,key 给直接被 map 或者 forEach 控制的元素,假如h3外面包了一个div,v 里面放了一个h3,div是h3的父元素。

key 直接加给 div。

相关文章
|
18天前
|
JavaScript 前端开发 测试技术
React和Vue的性能对比如何?
需要注意的是,性能不仅仅取决于框架本身,还与开发者的代码质量、架构设计以及项目的优化程度等密切相关。因此,在评估性能时,应该综合考虑多个因素,而不是仅仅局限于框架之间的比较。
82 1
|
24天前
|
JavaScript 前端开发 算法
React 框架和 Vue 框架的区别是什么?
React框架和Vue框架都是目前非常流行的前端JavaScript框架,它们在很多方面存在区别
|
2月前
|
XML 前端开发 JavaScript
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
这篇文章是React的学习笔记,覆盖了从React的基础用法到高级特性,包括组件化、状态管理、生命周期、虚拟DOM等主题,适合React初学者参考。
103 0
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
|
1月前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
1月前
|
前端开发 JavaScript 数据管理
React与Vue:两大前端框架的较量与选择策略
【10月更文挑战第23天】React与Vue:两大前端框架的较量与选择策略
|
1月前
|
JavaScript 前端开发 算法
在性能上,React和Vue有什么区别
【10月更文挑战第23天】在性能上,React和Vue有什么区别
18 1
|
2月前
|
JavaScript 前端开发 算法
前端优化之超大数组更新:深入分析Vue/React/Svelte的更新渲染策略
本文对比了 Vue、React 和 Svelte 在数组渲染方面的实现方式和优缺点,探讨了它们与直接操作 DOM 的差异及 Web Components 的实现方式。Vue 通过响应式系统自动管理数据变化,React 利用虚拟 DOM 和 `diffing` 算法优化更新,Svelte 通过编译时优化提升性能。文章还介绍了数组更新的优化策略,如使用 `key`、分片渲染、虚拟滚动等,帮助开发者在处理大型数组时提升性能。总结指出,选择合适的框架应根据项目复杂度和性能需求来决定。
|
1月前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】 React与Vue:前端框架的巅峰对决与选择策略
|
1月前
|
JavaScript 前端开发 数据管理
React和Vue的优缺点
【10月更文挑战第23天】React和Vue的优缺点
30 0
|
1月前
|
开发框架 JavaScript 前端开发
React和Vue之间的区别是什么
【10月更文挑战第23天】React和Vue之间的区别是什么
14 0