01-Vue2 介绍与指令的使用

1. Vue核心

  1.1. Vue简介

        1.1.1. 官网

中文官网Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)icon-default.png?t=N7T8https://cn.vuejs.org/

英文官网
Vue.js - The Progressive JavaScript Framework | Vue.js (vuejs.org)icon-default.png?t=N7T8https://vuejs.org/

        1.1.2. 介绍与描述

VUE是构建于用户界面的渐进式JavaScript框架

        1.1.3. Vue的特点

遵循MVVM模式

体积小、编码简洁,执行效率高,适合移动/PC端开发

        1.1.4.与其他JS框架的关联

借鉴 Angular 的模板和数据绑定技术
借鉴 React 的组件化虚拟DOM技术

        1.1.5. Vue周边库

vite:vue脚手架
vue-resource
axios
vue-router:路由
vuex:状态管理
element-ui:基于vue的UI组件库(PC端)

1.2. 初识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>初识vue</title><!-- 引入Vue --><script src="../js/vue.js"></script>
</head>
<body><!-- 准备好一个容器 --><div id="root"><h1>Hello!{{name}}!</h1></div><script>Vue.config.productionTip = false // vue在启动时生成提示关闭new Vue({el:'#root', //el用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串data:{ //data用于存储数据,数据共el所指定的容器去使用name:'JOJO'}})</script>
</body>
</html>

VUE的基本使用

1.导入vue.js脚本文件

2.在页面声明一个将要被vue控制的区域

3.创建VUE的实例对象

1.3. 模板语法

<!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>vue模板语法</title><script src="../js/vue.js"></script>
</head>
<body><div id="root"><h1>插值语法</h1><h3>你好,{{name}}!</h3><hr><h1>指令语法</h1><a v-bind:href="url">快去看新番!</a><br><a :href="url">快去看新番!</a></div><script>Vue.config.productionTip = false new Vue({el:'#root', data:{ name:'JOJO',url:'https://www.bilibili.com/'}})</script>
</body>
</html>

总结:

Vue模板语法包括两大类:

插值语法:

功能:用于解析标签体内容

写法:{{xxx}}(matches),xxx是js表达式,可以直接读取到data的数据

指令语法:

功能:用于解析标签(包括:标签属性、标签体内容、绑定事件…)
举例:v-bind:xxx,xxx同样要写js表达式,可以直接读取到data中的属性

1.4数据绑定

<body><div id="root">单向数据绑定:<input type="text" v-bind:value="name"><br>双向数据绑定:<input type="text" v-model:value="name"></div><script>Vue.config.productionTip = false new Vue({el:'#root', data:{name:'JOJO'}})</script>
</body>

总结:

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

单向绑定(v-bind) 双向绑定(v-model)

备注:

双向数据绑定一般应用在表单类元素上(如:<input>、<select>、<textarea>等)
v-model:value可以简写为v-model,因为v-model默认收集的是value值

1.5. el与data的两种写法

<body><div id="root"><h1>Hello,{{name}}!</h1></div><script>Vue.config.productionTip = false //el的两种写法:// const vm = new Vue({//     // el:'#root', //第一种写法//     data:{//         name:'JOJO'//     }// })// vm.$mount('#root')//第二种写法//data的两种写法:new Vue({el:'#root', //data的第一种写法:对象式// data:{//     name:'JOJO'// }//data的第二种写法:函数式data(){return{name:'JOJO'}}})</script>
</body>

总结:

el有2种写法:

  1. 创建Vue实例对象的时用el属性
  2. 先创建Vue实例,再通过vm.$mount('#root')指定el的值

data有2种写法:

  1. 对象式
  2. 函数式

 由Vue管理的函数,一定不要写箭头函数,否则this就不再是Vue实例了

 1.6. MVVM模型

 MVVM模型

M :model表示在页面渲染时的数据源

V:View表示在页面渲染的DOM结构

VM:实例对象

<body><div id="app"><span ref="span" @click="change($event)">{{ message }}</span><p>{{name}}</p><p>{{ $options}}</p></div>
</body>

总结:

        data中所有的属性,最后都出现在了vm身上

        vm身上所有的属性 及 Vue原型上所有的属性,在Vue模板中直接使用

1.7. Vue中的数据代理

 

总结:

Vue中的数据代理通过vm对象来代理data对象中属性的操作(读/写)
Vue中数据代理的好处:更加方便的操作data中的数据
基本原理:
        通过object.defineProperty()把data对象中所有属性添加到vm上。
        为每一个添加到vm上的属性,都指定一个getter/setter。
        在getter/setter内部去操作(读/写)data中对应的属性。

 

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

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

相关文章

靶机渗透之sar

Name: Sar: 1Date release: 15 Feb 2020Author: LoveSeries: Sar Download: https://drive.google.com/open?id1AFAmM21AwiAEiVFUA0cSr_GeAYaxd3lQ 对于vulnhub中的靶机&#xff0c;我们都需先下载镜像&#xff0c;然后导入VM&#xff0c;并将网络连接改为NAT模式。首先我们…

UDP数据报套接字编程入门

目录 1.TCP和UDP的特点及区别 1.1TCP的特点 1.2UDP的特点 1.3区别 2.UDP Socket的api的介绍 2.1DatagramSocket API 2.2DatagramPacket API 3.回显客户端与服务器 3.1回显服务器 3.1.1UdpEchoServer类的创建 3.1.2服务器的运行方法start() 3.1.3main部分 3.1.4.完整…

C# CAD PaletteSet.Style各种外观和行为样式

ps.Style 是 Autodesk.AutoCAD.Windows.PaletteSet 类的一个属性&#xff0c;用于定义调色板集&#xff08;PaletteSet&#xff09;的各种外观和行为样式。它可以是 PaletteSetStyles 枚举类型的组合值 PaletteSetStyles 枚举中包含以下一些选项&#xff1a; NameEditable&am…

统计子矩阵

一、题目描述 P8783 [蓝桥杯 2022 省 B] 统计子矩阵 二、算法简析 2.1 二维前缀和 我们知道&#xff0c;只要确定了矩阵的左上顶点和右下顶点&#xff0c;一个矩阵就被固定了。因此&#xff0c;我们可以遍历这两个顶点&#xff0c;达到遍历所有子矩阵的目的&#xff0c;复杂…

AutoSAR(基础入门篇)12.5-Dem

目录 一、Dem简介 二、Dem消抖 1、计数模式 1. 普通增减计数 2. 反向归零增减模式

在微服务整合dubbo,以为微服务版的若依为例

在微服务整合dubbo&#xff0c;以为微服务版的若依为例 一、环境二、整合过程1、父模块依赖2、生产者3、消费者 三、修改若依的服务调用方式为dubbo1、改造系统模块2、改造认证授权中心 四、整合过程遇到的问题1、出现循环引用2、出现依赖冲突3、启动出现端口号被占用4、出现某…

UVa11726 Crime Scene

题目链接 UVa11726 - Crime Scene 题意 给定n&#xff08;n≤100&#xff09;个物体&#xff0c;每个物体都是一个圆或者k&#xff08;k≤10&#xff09;边形&#xff0c;用长度尽量小的绳子把它们包围起来。 分析 孟加拉国Manzurur Rahman Khan (Sidky)大神出的难题&#xff…

MySQL 核心模块揭秘 | 07 期 | 二阶段提交 (1) prepare 阶段

二阶段提交的 prepare 阶段&#xff0c;binlog 和 InnoDB 各自会有哪些动作&#xff1f; 本文基于 MySQL 8.0.32 源码&#xff0c;存储引擎为 InnoDB。 1. 二阶段提交 二阶段提交&#xff0c;顾名思义&#xff0c;包含两个阶段&#xff0c;它们是&#xff1a; prepare 阶段。…

springboot-基础-eclipse配置+helloword示例

备份笔记。所有代码都是2019年测试通过的&#xff0c;如有问题请自行搜索解决&#xff01; 下一篇&#xff1a;springboot-基础-添加model和controller的简单例子常用注解含义 目录 配置helloword示例新建项目创建文件 配置 spring boot官方有定制版eclipse&#xff0c;也就是…

BUUCTF AWD-Test1

打开靶场是这个有些简陋的界面。 随便点点&#xff0c;找到这个东西。 看到ThinkPHP&#xff0c;思路瞬间清晰&#xff0c;老熟人了。这个就是ThinkPHP漏洞。根据版本我们去找一下poc。 /index.php/?sIndex/\think\View/display&content%22%3C?%3E%3C?php%20phpinfo();…

SHELL 脚本: 导出NEO4j DUMP并上传SFTP

前提 开通sftp账号 安装expect 示例 NEO4J_HOME/path/to/neo4j # neo4j 安装目录 DUMP_PATH/data/dump # DUMP本地保存目录 DUMP_FILEneo4j_$(date %F).dump #导出文件名称 UPLOAD_DIR/path/to/stfp/dump/ #上传目录 $NEO4J_HOME/bin/neo4j-admin dump --databaseneo4j --t…

Vue-5

Vue 3 的优势 更容易维护&#xff08;组合式API&#xff09;更快的速度更小的体积更优的数据响应 创建 Vue 3 项目 前提环境条件&#xff1a;已安装 16.0 或更高版本的 Node.js node -v创建一个 Vue 应用&#xff08;下面的指令将会安装并执行 create-vue &#xff09; np…

服务端向客户端推送数据的实现方案

在日常的开发中&#xff0c;我们经常能碰见服务端需要主动推送给客户端数据的业务场景&#xff0c;比如数据大屏的实时数据&#xff0c;比如消息中心的未读消息&#xff0c;比如聊天功能等等。 本文主要介绍SSE的使用场景和如何使用SSE。 服务端向客户端推送数据的实现方案有哪…

MySQL 自增列解析(Auto_increment)

MySQL数据库为列提供了一种自增属性&#xff0c;当列被定义为自增时。Insert语句对该列即使不提供值&#xff0c;MySQL也会自动为该列生成递增的唯一标识&#xff0c;因此这个特性广泛用于主键的自动生成。 一、自增列的用法 自增列具有自动生成序列值&#xff0c;整型&#…

职责链模式(Chain of Responsibility Pattern)

定义 职责链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为设计模式&#xff0c;它允许对象接收请求并将其沿着处理者链传递&#xff0c;直到有一个处理者处理它为止。职责链模式通过将请求的处理逻辑分布 在职责链模式中&#xff0c;通常包含以下几…

MYSQL04高级_逻辑架构剖析、查询缓存、解析器、优化器、执行器、存储引擎

文章目录 ①. 逻辑架构剖析②. 服务层 - 查询缓存③. 服务层 - 解析器④. 服务层 - 优化器⑤. 服务层 - 执行器⑥. MySQL8执行原理 ①. 逻辑架构剖析 ①. 服务器处理客户端请求 ②. 连接层 系统(客户端)访问MySQL服务器前,做的第一件事就是建立TCP连接经过三次握手建立连接成…

Linux使用C语言实现通过互斥锁限制对共享资源的访问

互斥锁限制共享资源的访问 主线程中有两个线程&#xff0c;分别输出信息。 #include <stdio.h> #include <pthread.h> #include <unistd.h>int g_data0;void* fun1(void *arg) {printf("t1&#xff1a;%ld thread is create\n", (unsigned long)…

大宋咨询数据研究在汽车新品上市中的核心作用

随着汽车行业的快速变革&#xff0c;数据研究已经成为新品上市流程中的不可或缺的一环。从市场定位、产品规划到营销策略&#xff0c;数据研究不仅为汽车企业提供了独特的洞察&#xff0c;还为其提供了决策依据&#xff0c;确保新品在竞争激烈的市场中取得优势。在这一领域&…

Kubernetes IoTDB系列 | IoTDB搭建 | v1.3.0

目录 一、IoTDB 介绍二、k8s 部署 IoTDB一、IoTDB 介绍 IoTDB 是一种面向物联网(IoT)场景的开源时序数据库。它专门设计用于高效地存储和查询大规模物联网设备产生的时序数据。IoTDB 提供了高吞吐量、低延迟、灵活的数据模型以及多种数据查询和存储引擎等特性,使其成为处理…

稀疏图带负边的全源最短路Johnson算法

BellmanFord算法 Johnson算法解决的问题 带负权的稀疏图的全源最短路 算法流程 重新设置的每条边的权重都大于或等于0&#xff0c;跑完Djikstra后得到的全源最短路&#xff0c;记得要还原&#xff0c;即&#xff1a;f(u,v) d(u,v) - h[u] h[v] 例题