后端人眼中的Vue(一)

news2024/11/15 20:02:46

一、简介

1.1、Vue简介

image-20210129104929487

​ Vue是渐进式 JavaScript 框架,啥叫渐进式?渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,或者如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及其生态系统。比如Core+Vue-router+Vuex+axios,也可以满足你各种各样的需求。

​ Vue的特点和Web开发中常见的高级功能:

​ 1、解耦视图和数据

​ 2、双向数据绑定

​ 3、可复用的组件

​ 4、前端路由技术

​ 5、状态管理

​ 6、虚拟DOM

​ Vue对于后端人员来说,Vue就是Js框架, 让我们通过操作很少的DOM,甚至不需要操作页面中任何DOM元素,就很容易的完成数据和视图绑定,即双向绑定(MVVM)。正是因为有MVVM架构的基础,才有了前后端分离的基础。

1.2、语法对比

如果我们想要获取dom的内容。

1.2.1、原生JavaScript

document.getElomentById("username").value //获取值
document.getElomentById("username").value = "XiaoLin" //设置值

1.2.2、JQuery

$("#username").val(); //获取值
$("#username").val("XiaoLin") //设置值

1.3、MVVM

1568691099973

MVVM指的是前端中的三层:View层、Model层、ViewModel层。

  1. 视图层,在前端里就是我们常说的DOM层,主要作用是给用户展示各种信息。
  2. 数据层,数据可能是我们自定定义的数据,或者是从网络请求下来的数据。
  3. 视图模型层,是View层和Model层沟通的桥梁;一方面它实现了数据绑定(Data Binding),将Model的改变实时反应到View中;另一方面它实现了DOM监听,当DOM发生改变可以对应改变数据(Data)。

二、快速入门

2.1、Vue的安装和使用

我们首先压迫引入Vue的文件,可以把他下载到本地引用使用在线引入。

2.1.1、安装

2.1.1.1、CDN在线引用

<!-- 开发环境版本,包含了有帮助的命令行警告 --> 
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js></script>

2.1.1.2、本地下载

去官网下载,他有两个环境:

  1. 开发环境:https://vuejs.org/js/vue.js
  2. 生产环境: https://vuejs.org/js/vue.min.js

2.1.2、Vscode集成Vue

一般前端开发都是使用Vscdoe居多,当然使用WebStorm也可以,接下来介绍一下添加Vscode模板,让开发Vue更简单。

文件 -> 首选项 -> 用户代码片段,在输入框内输入html.json,用下面的代码覆盖掉原来的即可,下次新建html文件直接输入vue,然后按下回车即可。

{
	"html:5": {
		"prefix": "vue", //这里定义你的快捷键的名字
		"body": [
			"<!DOCTYPE html>",
			"<html>",
			"<head>",
				"\t<meta charset=\"UTF-8\">",
				"\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
				"\t<meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">",
				"\t<title></title>",
				"\t<script src=\"https://cdn.jsdelivr.net/npm/vue/dist/vue.js\"></script>",
			"</head>",
			"<body>",
				
			"</body>",
			"</html>",
		],
		"description": "HTML5"
	}
}

2.1.3、初体验

<!DOCTYPE html>
<html>
<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></title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 
    <script>
        new Vue({ //这个Vue对象用来控制某一个标签里面的数据
            el:"#app", //el表示emelemt元素,表示Vue实例的作用范围
            data:{
                username:"XiaoLin" //data数据,可以自定义各种数据
            }
        }); //创建一个Vue实例
    </script>
</head>
<body id="app">
    <h1>{{username}}</h1>
</body>
</html>

结果出错了,原因何在?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9pFWEtIp-1672800417343)(null)]

因为Js的加载从上往下加载的,所以我们应该把Vue代码放到元素下面,这样才可以确保在加载的时候先加载到元素在读取Vue代码。一般放到最末尾。

<!DOCTYPE html>
<html>
<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></title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 
    
</head>
<body id="app">
    <h1>{{username}}</h1>
</body>
<script>
    new Vue({ //这个Vue对象用来控制某一个标签里面的数据
        el:"#app", //el表示emelemt元素,表示Vue实例的作用范围
        data:{
            username:"XiaoLin" //data数据,可以自定义各种数据
        }
    }); //创建一个Vue实例
</script>
</html>

image-20221231140945157

很不幸,还是报错。原来官方不允许把作用范围放到html或者是body上面。所以日后一般是不挂在body上,哎body里面套多一个div,挂在div上。

image-20221231141202675

上面的代码做了什么事情?

  1. 先看js代码,会发现创建了一个Vue对象

  2. 创建Vue对象的时候,传入了一个对象:{}

  • {}中的el属性:该属性决定了这个Vue对象挂载到哪一个元素上,很明显,我们这里挂载到了id为app的元素上。

  • {}中包含了data属性:该属性中通常会存储一些数据,好像上面例子中的str1就是直接定义出来的数据

2.1.4、总结

  1. vue实例(对象)中el属性: 代表Vue的作用范围 日后在Vue的作用范围内都可以使用Vue的语法。
  2. vue实例(对象)中data属性: 用来给Vue实例绑定一些相关数据, 绑定的数据可以通过{{变量名}}在Vue作用范围内取出。
  3. 在使用{{}}进行获取data中数据时,可以在{{}}中书写表达式,运算符,调用相关方法,以及逻辑运算等。
  4. el属性中可以书写任意的CSS选择器[jquery选择器],但是在使用Vue开发是推荐使用 id选择器 注意: el属性值不能指定body或html标签。

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

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

相关文章

Homekit智能家居DIY之智能灯泡

一、什么是智能灯 传统的灯泡是通过手动打开和关闭开关来工作。有时&#xff0c;它们可以通过声控、触控、红外等方式进行控制&#xff0c;或者带有调光开关&#xff0c;让用户调暗或调亮灯光。 智能灯泡内置有芯片和通信模块&#xff0c;可与手机、家庭智能助手、或其他智能…

RabbitMQ、Kafka、RocketMQ消息中间件对比总结

文章目录前言侧重点架构模型消息通讯其他对比总结参考文档前言 不论Kafka还是RabbitMQ和RocketMQ&#xff0c;作为消息中间件&#xff0c;其作用为应用解耦、异步通讯、流量削峰填谷等。 拿我之前参加的一个电商项目来说&#xff0c;订单消息通过MQ从订单系统到支付系统、库存…

ORB-SLAM2 --- KeyFrame::UpdateConnections 函数

目录 一、函数作用 二、函数流程 三、code 四、函数解析 一、函数作用 更新关键帧之间的连接图。 更新变量 mConnectedKeyFrameWeights&#xff1a;当前关键帧的共视信息&#xff0c;记录当前关键帧共视关键帧的信息&#xff08;哪一帧和当前关键帧有共视&#xff0c;共视…

用C++实现十大经典排序算法

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 简介 排序算法可以分为内部排序和外部排序&#xff0c;内部排序是数据记录在内存中进行排序&#xff0c;而外部排序是因排序的数据很大…

喜报|知道创宇连续两年获评北京市企业创新信用领跑企业!

近日&#xff0c;2022年度北京市企业创新信用领跑名单正式发布。知道创宇凭借过硬的技术实力、创新能力及良好的企业信用记录成功入选2022年度北京市企业创新信用领跑企业。值得一提的是&#xff0c;这是知道创宇继2021年以来&#xff0c;连续两年获得此项殊荣。连续两年蝉联双…

CPU是如何执行程序的?

CPU是如何执行程序的&#xff1f;1、硬件结构介绍1.1、CPU1.2、内存1.3、总线1.4、输入/输出设备2、程序执行的基本过程3、a11执行的详细过程现代计算机的基本结构为五个部分&#xff1a;CPU、内存、总线、输入/输出设备。或许你了解了这些概念&#xff0c;但是你知道a11在计算…

【Kubernetes | Pod 系列】Pod 的镜像下载策略和 Pod 的生命周期 Ⅰ—— 理论

目录4. 镜像下载策略5. Pod 的生命周期5.1 Pod 生命期与特性说明5.2 Pod Phase 阶段说明备注5.3 容器状态说明&#xff08;1&#xff09;Waiting &#xff08;等待&#xff09;&#xff08;2&#xff09;Running&#xff08;运行中&#xff09;&#xff08;3&#xff09;Termin…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的nlp预训练模型

目录给我推荐20个比较流行的nlp预训练模型给我推荐20个比较流行的nlp预训练模型源码给我推荐20个比较流行的nlp预训练模型 BERT (谷歌) GPT-2 (OpenAI) RoBERTa (Facebook) ALBERT (谷歌) ELECTRA (谷歌) XLNet (谷歌/纽约大学) T5 (OpenAI) Transformer-XL (谷歌/香港中文大学…

Qt音视频开发09-ffmpeg内核音视频同步

一、前言 用ffmpeg来做音视频同步&#xff0c;个人认为这个是ffmpeg基础处理中最难的一个&#xff0c;无数人就卡在这里&#xff0c;怎么也不准&#xff0c;本人也是尝试过网上各种demo&#xff0c;基本上都是渣渣&#xff0c;要么仅仅支持极其少量的视频文件比如收到的数据包…

【EdgeBox_tx1_tx2_E100】 PyTorch v1.8.0 torchvision v0.9.0 环境部署

简介&#xff1a;介绍PyTorch 环境 在 EHub_tx1_tx2_E100载板&#xff0c;TX1核心模块环境&#xff08;Ubuntu18.04&#xff09;下如何实现部署和测试&#xff0c;准备安装的环境是&#xff08;PyTorch v1.8.0 torchvision v0.9.0&#xff09;。 关于测试硬件EHub_tx1_tx2_E1…

文献学习04_Deep contextualized word representations 深度语境化的单词表示_20230102

论文信息 Subjects: Computation and Language (cs.CL) &#xff08;1&#xff09;题目&#xff1a;Deep contextualized word representations &#xff08;深度语境化的单词表示&#xff09; &#xff08;2&#xff09;文章下载地址&#xff1a; https://doi.org/10.48550/…

Telemetry网络监控技术讲解

目录 Telemetry基本概念 设备监测数据的数据类型 为么要提出Telemetry Telemetry网络模型 广义Telemetry 狭义Telemetry 狭义Telemetry框架 数据源&#xff08;Yang&#xff09; 数据生成&#xff08;GPB&#xff09; 数据订阅&#xff08;gRPC、UDP&#xff09; 数…

跟着开源项目学java7-从操作日志排除敏感字段的提交看基于注解的日志记录实现

这次 commit 主要解决日志信息中可能存在 password 等敏感字段&#xff0c;需要在保存前排除掉 主要涉及两个类的修改&#xff0c;添加实现了一个 PropertyPreExcludeFilter&#xff0c;集成 fastjson2 的 SimplePropertyPreFilter 实现 /*** 排除JSON敏感属性* * author ruo…

两种方法设置Word文档的“只读模式”

防止Word文档被意外更改&#xff0c;我们可以将Word设置成“只读模式”来保护文档。根据需要&#xff0c;还可以将Word可以设置成无密码和有密码的“只读模式”&#xff0c;下面来说说具体方法。 方法一&#xff1a;无密码的“只读模式” 打开Word文档后&#xff0c;点击菜单…

C进阶_C语言_大小端_C语言大小端

现在调试以下代码&#xff0c;并对变量a和b进行监视&#xff1a; #include <stdio.h> int main() {int a 20;int b -10;return 0; } 右键&#xff0c;勾选十六进制显示&#xff1a; 可以看到&#xff0c;变量a和变量b的十六进制值分别为0x00000014和0xfffffff6。 那么…

MySQL之数据库设计范式

数据库设计范式&#xff1a; 第一范式&#xff1a; 要求任何一张表必须有主键&#xff0c;每一个字段原子性不可再分&#xff0c;第一范式是最核心&#xff0c;最重要的范式&#xff0c;所有的表的设计都需要满足 举例&#xff1a; 第二范式&#xff1a; 建立在第一范式的基…

一款基于SSH的反向Shell工具

一款基于SSH的反向Shell工具。 Reverse_SSH上一款基于SSH的反向Shell工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以使用SSH来实现反向Shell&#xff0c;并同时拥有下列功能&#xff1a; 1、使用原生SSH语句管理和连接反向Shell&#xff1b; 2、动态、本地和…

<UDP网络编程>——《计算机网络》

目录 1. 网络基础知识 1.1 理解源IP地址和目的IP地址 1.2 认识端口号 1.3 理解 "端口号" 和 "进程ID" 1.3.1 理解源端口号和目的端口号 1.4 认识TCP协议 1.5 认识UDP协议 1.6 网络字节序 2. socket编程接口 2.1 socket 常见API 2.2 sockaddr结构 2.3 socka…

广告刷屏世界杯,联想Filez助力海信全球营销运营

相信每个世界杯球迷在看球的同时也被世界杯球场上不断滚动的“Hisense&#xff0c;世界第二&#xff0c;中国第一”的广告牌吸引目光。在这28天&#xff0c;64场比赛中&#xff0c;卡塔尔的比赛场地不仅随处可见海信的围栏广告&#xff0c;同时场外也随处可见海信的身影。从备受…

ARM寄存器

1.ARM 工作状态 arm 支持大小端&#xff08;默认小端 &#xff0c;大端格式&#xff1a;高字节在低地址&#xff0c;低字节在高地址&#xff1b;小端格式&#xff1a;高字节在高地址&#xff0c;低字节在低地址&#xff1b;&#xff09;、arm支持16bit thumb指令和32bit arm指…