Vue2学习第二天

Vue2 学习第二天

1. 数据绑定

Vue 中有 2 种数据绑定的方式:

  1. 单向绑定(v-bind):数据只能从 data 流向页面。
  2. 双向绑定(v-model):数据不仅能从 data 流向页面,还可以从页面流向 data。

备注:

  1. 双向绑定一般都应用在表单类元素上(如:inputselect等),改变 input 视图自动发生变化
  2. v-model:value 可以简写为 v-model,因为**v-model默认收集的就是value**值。
<template><div id="wrapper"><!-- <button v-on:click="toggle">toggle</button> --><!-- <p v-if="isShow">hello world</p> --><p v-if="score == 100">满分</p><p v-else-if="score >= 60">及格</p><p v-else>不及格</p><!-- v-show通过控制css中的display:none来隐藏元素 --><span v-show="isShow">当前的分数是:{{ score }}</span><br /><!-- v-model可以自动的做双向绑定,改变input视图自动发生变化 --><input type="text" v-model="score" /><button @click="handleClick">控制分数显示</button></div>
</template><script>
export default {data() {return {isShow: true,score: 0,};},methods: {toggle() {this.isShow = !this.isShow;},handleClick() {this.isShow = !this.isShow;},},
};
</script><style></style>

QQ录屏20240215102835 -original-original

2. v-for 循环

v-for可以通过这个语法糖,在模板中对 data 中的数组进行遍历。

就是一个循环一个标签,会送你一个itemindex

<template><div id="wrapper"><div class="box"><!-- v-for就是一个循环一个标签,会送你一个item和index --><div v-for="(item, index) in songList" :key="index" class="item"><!-- 属性前面加上:代表了动态属性,里面可以传入变量 --><img :src="item.imgUrl" alt="" /><div>{{ item.imgName }}</div><!-- 事件传参,我们可以将item传入事件 --><button @click="deleteItem(item)">点我删除</button></div></div></div>
</template><script>
export default {name: "VFor",data() {return {songList: [{imgUrl: "https://p1.music.126.net/JcpOXM243FptA9tRYnPFlw==/109951167423159409.jpg",imgName: "歌曲1",},{imgUrl: "https://p1.music.126.net/-3hoO4QAO81HZ4gax4SMBw==/109951167692147226.jpg",imgName: "歌曲2",},{imgUrl: "https://p1.music.126.net/xJzCcsYiMUAWtwBMKj7IBg==/109951167930323816.jpg",imgName: "歌曲3",},],};},methods: {// 将点击的项给删除deleteItem(item) {// filter方法,筛选数组,找到名字和当前项不一样的返回this.songList = this.songList.filter((song) => {return song.imgName !== item.imgName;});},},
};
</script><style scoped>
#wrapper {width: 100vw;
}.box {width: 300px;height: 300px;border: 1px solid #ccc;display: flex;flex-wrap: wrap;justify-content: center;align-items: center;margin: 0 auto;
}.item {flex: 1;height: 100px;display: flex;flex-direction: column;align-items: center;
}.item > img {width: 50px;height: 50px;
}
</style>

QQ录屏20240215104612 -original-original

3. class 和 style

可以通过以下方式设置样式:

  • 字符串设置
  • 对象设置
  • 数组设置
<template><div><!-- 字符串设置 --><div :class="current ? 'active' : ''">hello world</div><!-- 数组设置 --><!-- 使用三元表达式设置class --><div :class="active ? ['active', 'box'] : 'box'"></div><button @click="activeBox">激活box</button><!-- 使用对象去设置样式 --><div:style="{opacity: opacity,width: '100px',height: '100px',background: 'red',}"class="test"></div><input type="range" v-model="opacity" :step="0.1" :min="0" :max="1" /></div>
</template>

QQ录屏20240215111510 -original-original

4. 生命周期

Vue 生命周期总结(四个阶段,八个钩子函数),生命周期就是组件或者实例,从创建到被销毁(初始化化数据、编译模板、挂载 DOM、渲染一更新一渲染、卸载)的一系列过程。

  • 生命周期:

    • 又名:生命周期回调函数、生命周期函数、生命周期钩子。

    • 是什么:Vue 在关键时刻帮我们调用的一些特殊名称的函数。

    • 生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的。

    • 生命周期函数中的 this 指向是 vm 或 组件实例对象。

生命周期

总结生命周期:

  • 常用的生命周期钩子

    • mounted: 发送 ajax 请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】。

    • beforeDestroy: 清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】。

  • 关于销毁 Vue 实例

    • 销毁后借助 Vue 开发者工具看不到任何信息。

    • 销毁后自定义事件会失效,但原生 DOM 事件依然有效。

    • 一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了。

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

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

相关文章

Leecode之面试题消失的数字

一.题目及剖析 https://leetcode.cn/problems/missing-number-lcci/description/ 方法有很多,这里将两种时间复杂度为O(N)的方法 二.思路引入 第一种方法 先将0-n的总和求出来,在求出数组的总和,在做差就能得到消失的数字,不过要注意的是数据有可能溢出,这个方法很简单就不再…

Flink理论—容错之状态后端(State Backends)

Flink理论—容错之状态后端(State Backends) Flink 使用流重放和 检查点的组合来实现容错。检查点标记每个输入流中的特定点以及每个运算符的相应状态。通过恢复运算符的状态并从检查点点重放记录&#xff0c;可以从检查点恢复流数据流&#xff0c;同时保持一致性 容错机制不…

题解43-48

124. 二叉树中的最大路径和 - 力扣&#xff08;LeetCode&#xff09; 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和…

巨抽象的前端vue3

根据实践证明&#xff0c;越是简单的问题&#xff0c;越容易造成大bug 一个自定义组件的路径就废了我老半天了 各种查询&#xff0c;各种百度&#xff0c;各种问&#xff0c;结果规规矩矩去导入组件路径&#xff0c;成了&#xff01; 错误代码&#xff1a; <script setu…

JavaScript中什么是事件委托

JavaScript 中的事件委托&#xff08;Event delegation&#xff09;是一种重要的编程技术&#xff0c;它能够优化网页中的事件处理&#xff0c;提高程序的性能和可维护性。本文将详细介绍事件委托的概念、工作原理&#xff0c;并提供示例代码来说明其实际应用。 事件委托是基于…

【LeetCode: 107. 二叉树的层序遍历 II + BFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【开源】SpringBoot框架开发学校热点新闻推送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 新闻类型模块2.2 新闻档案模块2.3 新闻留言模块2.4 新闻评论模块2.5 新闻收藏模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 新闻类型表3.2.2 新闻表3.2.3 新闻留言表3.2.4 新闻评论表3.2.5 新闻收藏表 四、系统展…

项目管理工具软件Maven趣闻

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Maven这个单词来自于意第绪语&#xff08;Yiddish&#xff09;&#xff0c;这是一种与德语和希伯来语有密切关系的犹太民族语言。在这个语境中&#xff0c;Maven意为“知识的…

红队笔记Day4 -->多层代理(模拟企业拓扑)

声明&#xff1a;本机文章只用于教育用途&#xff0c;无不良引导&#xff0c;禁止用于从事任何违法活动 前几天的红队笔记的网络拓扑都比较简单&#xff0c;今天就来模拟一下企业的真实网络拓扑&#xff0c;以及攻击方法 一般的大企业的网络拓扑如下&#xff1a;&#xff1a;…

上位机图像处理和嵌入式模块部署(图像项目处理过程)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于一般的图像项目来说&#xff0c;图像处理只是工作当中的一部分。在整个项目处理的过程中有很多的内容需要处理&#xff0c;比如说了解需求、评…

Camtasia 2024.3.7 Mac功能强大的屏幕录制和视频编辑软件

Camtasia 2024.3.7 是一款功能强大的屏幕录制和视频编辑软件&#xff0c;广泛用于创建教育、培训、演示和演讲等各种视频内容。它具有直观的用户界面和丰富的功能&#xff0c;使用户能够轻松地录制屏幕动画、添加音频、视频、文本和效果&#xff0c;并进行高质量的视频编辑和制…

【AIGC】Stable Diffusion 的提示词入门

一、正向提示词和反向提示词 Stable Diffusion 中的提示词通常用于指导用户对生成的图像进行控制。这些提示词可以分为正向提示词&#xff08;Positive Prompts&#xff09;和反向提示词&#xff08;Negative Prompts&#xff09;两类&#xff0c;它们分别影响图像生成过程中的…