后端扫盲系列 - vue入门指南

vue特点

  1. 组件化:用户界面分解为可重用的组件,这些组件可以使开发的页面更加模块化和可维护=
  2. 双向数据绑定:vue提供了一种轻松绑定数据和DOM元素之间的机制,意味着数据发送变化时,视图会自动更新,反之亦然
  3. 虚拟DOM:vue使用虚拟DOM来最小化实际DOM更新的次数,从而提高性能

认知

在前端开发中,如果你要使用Vue框架你也需要进行框架的引入相关Vue依赖,在前端用于管理依赖的工具并没有像后端一样采用Maven来进行管理,而是引入了一个新的工具 --- 脚手架(也可以将脚手架直观地理解为maven)

因此,为了快速构建Vue项目,我们可以选择脚手架工具Vue CLI来创建vue项目。如果不想这么麻烦,还可以采用如下的方式来快速使用Vue

使用CDN引入   在HTML文件中添加以下配置

//使用CDN引入   在HTML文件中添加以下配置
<!-- 开发版本,包含带有警告的调试模式 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

 本地加载引入

//本地加载引入
将vue.js下载到本地,然后通过<script>引入

vue的基础使用

如下代码展示了开发者该如何快速构建一个vue项目

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>index</title>
</head><body><div id="app"><!-- 表达式 --><h1>{{message}}</h1></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>// 创建Vue的实例new Vue({// 绑定id为app的元素el: "#app",// 数据data: {message: "hello Vue!"}})</script>
</body></html>//运行上述代码,就能在页面上打印出Hello Vue
//上述代码做的工作1.通过new关键字构建一个vue实例对象。这点就像Java中new构建一个实例没太大区别。
2.在构建vue实例对象时,可以传入一个对象信息。具体来看,其为el字段指定一个名为#app的属性。同时为data字段又配置的了一个对象信息。事实上,在Vue中el和data是两个重要的选项,其主要用于定义Vue实例的根元素和数据。其中,
1.el选项:用于指定Vue实例关联的DOM元素。它定义了Vue实例在哪个DOM元素上渲染和控制。值通常为一个CSS选择器
2.data选项:主要用于定义Vue实例的数据。而数据属性可以是任何JavaScript数据类型,例如字符串、数字、对象、数组等。
不难发现,通过构建一个vue实例对象,然后对该实例配置el,data两个字段指定vue实例作用对象,以及存储的数据信息,然后再页面中使用{{}}语法即可获取到data字段中配置的内容。

数据操作

在vue中与数据操作的操作息息相关的大致有计算属性、侦听器、方法三种常见手段

计算属性

Vue允许开发者定义计算属性,这些属性根据其他数据属性的值进行计算。计算属性会缓存计算结果,只有在依赖的数据属性发生变化时才会重新计算

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>index</title>
</head><body><div id="app"> <input type="text" v-model="radius"><p>圆的面积:{{ circleArea }}</p></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>new Vue({el:"#app",data: {radius: 5},computed: {circleArea: function() {return Math.PI * Math.pow(this.radius, 2);}}});</script>
</body></html>

​​​​​​​监听属性(watch)

除了计算属性外,也可以使用 watch 选项来监听数据属性的变化,然后执行自定义的操作。上述逻辑改为侦听器则逻辑如下

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>index</title>
</head><body><div id="app"> <input type="text" v-model="radius"><p>圆的面积:{{ circleArea }}</p></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>new Vue({el:"#app",data: {radius: 0,circleArea:0},watch: {radius:function(newValue,oldVule){console.log(newValue)this.circleArea = Math.PI * Math.pow(newValue, 2);}}});</script>
</body></html>

指定操作

 v-model

用于实现双向数据绑定,通常用于表单元素,使输入框的值与数据属性保持同步

<input v-model="message">

 v-for

用于循环渲染列表中的元素,通常与v-bind:key一起使用

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

 v-if、v-else、v-else-if

用于条件渲染,根据条件决定是否渲染或显示DOM元素

<p v-if="isTrue">This is true</p>
<p v-else>This is false</p>

 v-show

用于根据条件切换元素的可见性,与v-if不同,仅使用CSS样式控制显示/隐藏,不会添加/删除元素

<p v-show="isVisible">This may be hidden</p>

 v-bind(缩写为:)

用于绑定HTML属性的值到Vue实例的数据属性,以实现动态属性绑定

<a :href="url">Visit Vue.js</a>

v-on(缩写为@)

用于监听DOM事件,当事件触发时执行Vue实例的方法

<button @click="doSomething">Click me</button>

 v-once

用于标记元素和其子元素只渲染一次,后续的数据变化不会影响它们

<p v-once>{{ message }}</p>

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

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

相关文章

GptSoVits音频教程

这个号称5秒克隆&#xff0c;或者用1分钟音频训练10分钟就能达到原声效果。 5秒的号称&#xff0c;只要是&#xff0c;什么几秒的&#xff0c;大家可以完全不要想了&#xff0c;什么知更鸟&#xff0c;什么火山&#xff0c;包括本次的GptSoVits的效果肯定是不行的&#xff0c;…

数据结构通讲

目录 集合源码详解 一、常见数据结构讲解 1. 线性数据结构 1.1 数组 1.2 队列 1.3 链表 1.3.1 单向链表 1.3.2 双向链表 1.4 栈 2. 非线性数据结构 2.1 树 2.2 二叉树 2.2.1 概念介绍 2.2.2 遍历操作 2.2.3 删除节点 2.2.4 查找局限性 2.2.5 AVL&#xff08; …

【C深剖】typedef关键字

简介&#xff1a;本系列博客为C深度解剖系列内容&#xff0c;以某个点为中心进行相关详细拓展 适宜人群&#xff1a;已大体了解C语法同学 作者留言&#xff1a;本博客相关内容如需转载请注明出处&#xff0c;本人学疏才浅&#xff0c;难免存在些许错误&#xff0c;望留言指正 作…

智能高压森林应急消防泵特点及优势

随着科技的发展&#xff0c;消防设备也在不断地升级改进。智能高压森林应急消防泵作为一种新型的消防设备&#xff0c;其特点和优势日益凸显&#xff0c;为森林火灾的扑救提供了有力的支持。本文将从以下几个方面对智能高压森林应急消防泵的特点和优势进行阐述。 一、高强度耐腐…

Ubuntu本地安装code-server结合内网穿透实现安卓平板远程写代码

文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以&#xff0c;这里以VMwhere ubuntu系统为例 下载code server服务,浏览器…

机器学习第二十八周周报 PINNs2

文章目录 week28 PINNs2摘要Abstract一、Lipschitz条件二、文献阅读1. 题目数据驱动的偏微分方程2. 连续时间模型3. 离散时间模型4.结论 三、CLSTM1. 任务要求2. 实验结果3. 实验代码3.1模型构建3.2训练过程代码 小结参考文献 week28 PINNs2 摘要 本文主要讨论PINN。本文简要…

天然肠衣市场分析:预计到2025年将达到45亿美元

肠衣作为包装香肠馅料的原材料一般分为可食用和不可食用两种&#xff0c;其中天然肠是由猪、羊等家畜多层肠道制作而成的&#xff0c;近些年来天然肠衣在全球市场需求不断增加。一、全球市场分析 1. 市场规模&#xff1a;根据市场研究机构的数据&#xff0c;2019年全球天然肠衣…

访问学者感谢信|人文社科工作者赴北欧访学

编者按&#xff1a;这位访问学者从委托我们申请到获得邀请函只用了一个月时间。为了表达感激之情&#xff0c;其当时就写了这封感谢信&#xff0c;但依据我们的惯例&#xff0c;一般是待申请者出国&#xff0c;一切安排妥当后再发成功案例。所以时至今日&#xff0c;才将该申请…

比特浏览器bit_selenium3bit_selenium4使用

bit_selenium3 from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options from bit_api import *# /browser/open 接口会返回 selen…

旧衣回收小程序开发,市场发展潜力巨大

在当下快节奏生活下&#xff0c;人们的闲置衣物越来越多&#xff0c;为了减少浪费&#xff0c;旧衣回收成成为了大众的选择。旧衣回收能够降低人们的损失&#xff0c;减少我国资源浪费&#xff0c;又能循环利用&#xff0c;是我国一个环保商业模式。 “互联网旧衣回收”推动市场…

消息队列(Message Queue)

目录 一、概念 二、消息队列使用场景 三、消息队列的两种模式 1.点对点模式 2.发布/订阅模式 四、常用消息队列介绍 1.RabbitMQ 1) 主要特性 2&#xff09;安装需要 3&#xff09;优点 4&#xff09;缺点 2.ActiveMQ 1&#xff09;主要特性 2) 安装需要 3&#xff09;优…

洛谷C++简单题小练习day14—闰年推算小程序

day14--闰年推算小程序--2.18 习题概述 题目描述 输入 x,y&#xff0c;输出 [x,y] 区间中闰年个数&#xff0c;并在下一行输出所有闰年年份数字&#xff0c;使用空格隔开。 输入格式 输入两个正整数 x,y&#xff0c;以空格隔开。 输出格式 第一行输出一个正整数&#xf…

原创!顶级SCI优化!一键实现ICEEMDAN-NRBO-BiLSTM-Attention多变量时间序列预测!以光伏数据集为例

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 数据介绍 模型流程 创新点 结果展示 完整…

opencv-python保存视频为mp4格式并支持在浏览器播放

前言 之前在项目上使用yolov8进行视频检测的时候&#xff0c;yolov8默认windows系统下保存的是avi格式 suffix, fourcc (.mp4, avc1) if MACOS else (.avi, WMV2) if WINDOWS else (.avi, MJPG) self.vid_writer[idx] cv2.VideoWriter(str(Path(save_path).with_suffix(suf…

【感知机】感知机(perceptron)学习算法知识点汇总

机器学习——感知机 感知机(perceptron)是一种二分类的线性模型&#xff0c;属于判别模型&#xff0c;也称为线性二分类器。输入为实例的特征向量&#xff0c;输出为实例的类别(取1和-1)。可以视为一种使用阶梯函数激活的人工神经元,例如通过梅尔频率倒谱系数&#xff08;MFCC…

N叉树的后序遍历

1.题目 这道题是2024-2-19的签到题&#xff0c;题目难度为简单。 考察的知识点为DFS算法&#xff08;树的深度遍历&#xff09;。 题目链接&#xff1a;N叉树的后序遍历 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 后序遍历 。 n 叉树 在输入中按层序遍历进…

leetcode刷题-最接近的三位数之和

1.题目描述 2.解题思路 其实这个题目的解题思路&#xff0c;和昨天写的两个题目差不多&#xff0c;定义两个指针&#xff0c;进行排序&#xff0c;避免多次大量循环&#xff0c;减少时间复杂度。在上次的基础上进行了一个比较小的改动。 3.代码 class Solution:def threeSumCl…

swagger+javax/xml/bind/DatatypeConverter+aop各种问题

文章目录 一、No operations defined in spec!1.问题图片2.解决方法 二、java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter1.问题图片2.解决方法 三、AOP切点不够精确问题1.问题描述2.解决方案 总结 一、No operations defined in spec! 这是swagger报的错&…

代码随想录算法训练营 DAY20 | 二叉树(7)

一、LeetCode 530 二叉搜索树的最小绝对值 题目链接&#xff1a;530.二叉搜索树的最小绝对值https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 思路一&#xff1a;利用搜索二叉树的中序遍历结果为有序数组的性质&#xff0c;将遍历结果保存到数组中&#xf…

【Google SEO】SEO指标

SEO最难的事情之一就是&#xff1a; 你怎么知道你正在做的事情是否真的有效&#xff1f; 这是一个很难回答的问题。特别是因为SEO可能需要几个月的时间才能真正发挥作用。 好吧&#xff0c;今天您将确切地看到要跟踪的SEO指标。如何跟踪它们。以及如何加倍努力&#xff0c;为…