vue3(二)-基础入门

一、列表渲染

of 和 in 都是一样的效果

html代码:

<div id="app"><ul><li v-for="item of datalist">{{ item }}</li></ul><ul><li v-for="item in dataobj">{{ item }}</li></ul><!-- 括号内的 index,item ,位于第一项的是数组的值,第二项的是数组的索引--><ul><li v-for="(index,item) of datalist">{{ item }}----{{ index }}</li></ul><!-- 括号内的 item,key ,位于第一项的是对象的值,第二项的是对象的键--><ul><li v-for="(item,key) in dataobj">{{ item }}----{{ key }}</li></ul>
</div>

javascript:

<script>const { createApp, ref } = VuecreateApp({data() {return {datalist: ['111', '222', '333'],dataobj: {a: '1',b: '2',c: '3'}}}}).mount('#app')
</script>

结果展示:
在这里插入图片描述

二、列表key值设置

  1. 跟踪每个节点的身份,从而重用和重新排序现有的元素

  2. 理想的key值是每项都有唯一的id

<ul><li v-for="item in dataobj" key="item.id">{{ item }}</li>
</ul>

三、列表数组检测

  1. vue中可以检测数组变动的函数,数组变动界面中的数据发生改变

1、push()、pop()、shift()、unshift()、splice()、sort()、reverse()
2、根据索引对数组进行重新赋值

  1. vue中调用以下函数,返回一个新数组,原数组没变,界面的数据不会发生改变

filter()、concat()、slice()、map()

四、filter应用-模糊查询

html:

<input type="text" @input="onchange()" v-model="inputText" />
<ul><li v-for="item in datalist">{{ item }}</li>
</ul>

javascript:

<script>const { createApp, ref } = Vueconst vm = createApp({data() {return {datalist: ['1aa11', '22dd2', '33gg3', 'qqa11', '2rrd2', 'dgklg3'],datalist1: ['1aa11', '22dd2', '33gg3', 'qqa11', '2rrd2', 'dgklg3'],inputText: ''}},methods: {onchange() {this.datalist = this.datalist1.filter(item => {return item.indexOf(this.inputText) > -1})}}}).mount('#app')
</script>

五、事件修饰符

1.stop 与 self 修饰符

当子节点触发事件后,若父节点有触发事件,父节点也会跟着触发

1.1.没有添加事件修饰符

html:

<ul @click="clickUlHandler()"><li @click="clickLiHandler()">1111</li>
</ul>

javascript:

<script>const { createApp, ref } = Vueconst vm = createApp({methods: {clickUlHandler() {console.log('ul触发了')},clickLiHandler() {console.log('li触发了')}}}).mount('#app')
</script>

点击 < li >标签,< ul > 标签的事件也触发了
在这里插入图片描述
1.2.添加事件修饰符 stop:
stop 只能添加在 < li >
html:

<ul @click="clickUlHandler()"><li @click.stop="clickLiHandler()">1111</li>
</ul>

只触发了 < li > 的事件
在这里插入图片描述
1.3.添加事件修饰符 self:
self 只能添加在 < ul >

<ul @click.self="clickUlHandler()"><li @click="clickLiHandler()">1111</li>
</ul>

只触发了 < li > 的事件
在这里插入图片描述

还可以通过 e.stopPropagation() 解决以上问题

clickLiHandler(e) {e.stopPropagation()console.log('li触发了')
} 

2.prevent

点击链接后页面会跳转,通过 prevent 阻止页面跳转

html:

<a href="www.baidu.com" @click.prevent="clickChangePage($event)">跳转页面
</a>

javascript:

<script>const { createApp, ref } = Vueconst vm = createApp({methods: {clickChangePage(e) {// e.preventDefault()  也可以通过调用该方法阻止页面跳转console.log('页面跳转了')}}}).mount('#app')</script>

3.once

被该修饰符修饰的事件只触发一次

html:

<ul @click="clickUlHandler()"><li @click.once="clickLiHandler()">1111</li>
</ul>

javascript:

<script>const { createApp, ref } = Vueconst vm = createApp({methods: {clickUlHandler() {console.log('ul触发了')},clickLiHandler() {console.log('li触发了')}}}).mount('#app')
</script>

< li > 只触发一次,而 < ul > 可以触发多次

在这里插入图片描述

六、按键修饰符

1.enter

html:

<input type="text" @keyup.enter="keyupHandle($event)" v-model="inputText"/>
<!-- 通过 @keyup.键值 效果一样-->
<!-- <input type="text" @keyup.13="keyupHandle($event)" v-model="inputText" /> -->

javascript:

<script>const { createApp, ref } = Vueconst vm = createApp({methods: {keyupHandle(e) {// 通过判断键值效果一样// if (e.keyCode === 13) {//   console.log(this.inputText)// }console.log(this.inputText)}}).mount('#app')
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/219562.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何学习VBA:3.2.8 OnTime方法与OnKey方法

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的劳动效率&#xff0c;而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册&#xff0c;现在已经全部完成&#xff0c;希望大家利用、学习。 如果…

超详细csapp-linklab之第一阶段“输出学号”实验报告

该实验的主题是“链接”。 准备工具 虚拟机&#xff0c;Ubuntu32位&#xff0c;hexedit&#xff0c;main.o&#xff0c;phase1.o&#xff0c;该实验的C代码框架如下 // main.c void (*phase)(); /*初始化为0*/int main( int argc, const char* argv[] ) {if ( phase )(*ph…

Day45:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

文章目录 300.最长递增子序列思路代码实现 674. 最长连续递增序列思路代码实现 718. 最长重复子数组思路代码实现 300.最长递增子序列 题目链接 思路 单个字符都是一个长为1的子序列&#xff0c;直接初始化dp为1。先固定一个元素位置i&#xff0c;判断0-i范围内到i的最长子序…

Autosar MCAL-RH850P1HC-MCAL配置环境搭建

文章目录 前言下载安装包软件安装安装SIP包安装MCAL文件配置工程配置生成代码测试静态代码路径总结前言 对于RH850P1HC,官网有免费的MCAL,但官网的MCAL没有CAN模块(原厂反馈为Bosch IP,CAN Driver他们没有),也没有FEE模块。如果需要,可以找第三方软件公司,如ETAS.虽然M…

R语言实现Lasso回归

一、Lasso回归 Lasso 回归&#xff08;Least Absolute Shrinkage and Selection Operator Regression&#xff09;是一种用于线性回归和特征选择的统计方法。它在回归问题中加入了L1正则化项&#xff0c;有助于解决多重共线性&#xff08;多个特征高度相关&#xff09;和特征选…

docker介绍、部署与常用命令

一、docker 介绍 1、容器&#xff08;Container&#xff09;&#xff1a; (1) 概念&#xff1a; 容器是一种用于运行和部署应用程序的技术。它将应用程序及其所有依赖项&#xff08;例如代码、运行时、系统工具、系统库等&#xff09;打包在一个独立的、可移植的运行环境中&…

单片机学习2——流水灯的实现

#include<reg52.h>sbit LED P1^0; unsigned char i;void main() {while(1){LED 0;for(i0;i<100;i);LED 1;for(i0;i<100;i);} } RST是复位按钮&#xff0c;单击一下之后&#xff0c;程序就会跑到最开始的位置运行。 右侧的按钮是RUN按钮&#xff0c;单击下&…

Android仿 美团 / 饿了么,店铺详情页功能

前言 UI有所不同&#xff0c;但功能差不多&#xff0c;商品添加购物车功能 正在写&#xff0c;写完会提交仓库。 页面主要由&#xff1a;MagicIndicator ViewPager2 Fragment CoordinatorLayout NestedScrollView RecyclerView组成。 效果图一&#xff1a;左右RecyclerV…

mybatis的使用,mybatis的实现原理,mybatis的优缺点,MyBatis缓存,MyBatis运行的原理,MyBatis的编写方式

文章目录 MyBatis简介结构图Mybatis缓存&#xff08;一级缓存、二级缓存&#xff09;MyBatis是什么&#xff1f;mybatis的实现原理JDBC编程有哪些不足之处&#xff0c;MyBatis是如何解决这些问题的&#xff1f;Mybatis优缺点优点缺点映射关系 MyBatis的解析和运行原理MyBatis的…

4/5G语音实现方案

今天又是学习充实的一天&#xff0c;今天我们来学习4G和5G语音实现方案的介绍&#xff0c;VOLITE通信流程是怎么样子的&#xff0c;和之前学的TCP协议有什么联系吗&#xff1f;今天我们换个角度来学习通信的流程~ 目录 2G/3G的电话和上网 4G语音实现方案 4G语音的三种方式 …

⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 目录 ⑤Redis Zset 操作命令汇总1. zadd 添加或…

专业级音乐制作软件Studio One 6.5详细功能介绍

Studio One 6.5是一款专业级音乐制作软件&#xff0c;由PreSonus公司开发。它提供了强大的音频录制、编辑、混音和制作工具&#xff0c;被广泛应用于音乐制作、录音棚和现场演出等领域。 Studio One-6.5 下载地址&#xff1a;https://souurl.cn/fMjY4Q 下面是关于Studio One 6…