VUE3学习---【一】【从零开始的VUE学习】

目录​​​​​​​

什么是Vue

渐进式框架

创建一个Vue应用

什么是Vue应用

使用Vue应用

根组件

挂载应用

模板语法

文本插值

原始HTML

Attribute绑定

简写

同名简写

布尔型Attribute

动态绑定多个值

使用JavaScript表达式

仅支持表达式

指令 Directives

指令名字Name

参数 Arguments

动态参数

动态参数值的限制

动态参数语法的限制

修饰符 Modifiers

什么是Vue

Vue是一款用于构建用户界面的JavaScript框架(渐进式框架)

Vue的两个核心功能:

  • 声明式渲染:Vue基于标准HTML拓展了一套模板语法,使得我们可以声明式地描述最终输出的HTMLJavaScript状态之间的关系
  • 响应式:Vue会自动追踪JavaScript状态并在其发生变化时响应式地更新DOM 

渐进式框架

渐进式框架的意思是:“可以根据用户的需求场景,用不同的方式使用Vue

  • 无需构建步骤,渐进式增强静态的HTML(CDN)
  • 在任何页面中作为Web Components嵌入(CDN)
  • 单页应用(构建)
  • 全栈 / 服务端渲染(SSR)
  • Jamstack / 静态站点生成(SSG)
  • 开发桌面端、移动端、WebGL界面

使用Vue的方法大致分为两种:“单文件组件(构建式)”、“API风格(CDN)

  • 单文件组件:使用Node.js等工具辅助构建Vue生产环境,在这个生产环境中我们可以使用一中和类似HTML格式的文件来书写Vue组件,它被称为单文件组件(*.vue文件,也叫SFC)
  • API风格:Vue的组件可以按两种不同的风格书写:“选项式API”、“组合式API
    • 选项式API(推荐新手):用包含多个选项的对象来描述组件的裸机,例如datamethods
    • 组合式API:使用导入的API函数来描述组件逻辑

注意:在本文章中将会使用无构建模式的选项式API

创建一个Vue应用

什么是Vue应用

Vue的世界,使用Vue我们需要创建一个Vue应用

这个应用包含了:

  • 应用数据:应用数据是动态更新
  • 应用行为:应用所做出的响应,例如鼠标点击行为等等

使用Vue应用

 使用Vue应用,我们一般有两个步骤

  • 创建Vue应用:定义Vue应用的数据、行为
  • 挂载Vue应用:指定这个Vue应用挂载到哪一个(多个)DOM对象上

Vue应用使用:“createApp”函数创建一个新的应用实例

语法:

createApp({ 根组件选项 })

一个例子:

import { createApp } from 'vue'const app = createApp({/* 根组件选项 */
})

根组件

传入createApp的对象实际上是一个组件,每个应用都需要一个“根组件”,其它组件将作为其子组件

根组件创建有两种方式:

  • 创建一个根组件变量,随后传入根组件变量
  • 直接写入一个匿名根组件变量
<body><div id="app">{{comment}}</div><div id="app2">{{comment}}</div><script>//创建一个根组件变量const root = {data() {return {comment:"Hello I am YangYang."}}};//将根组件变量作为参数传入const app = Vue.createApp(root).mount('#app');//直接传入匿名根组件const app2 = Vue.createApp({data() {return {comment:"Hello I am ZhaoYi."}}}).mount('#app2');</script>
</body>

挂载应用

成功创建一个应用后,我们还需要将这个应用挂载到某个DOM对象(容器)上,这个应用才会被渲染

语法:

应用.mount(CSS选择器)

  • 应用根组件的内容将会被渲染在容器元素里面,容器元素自己不会被视为应用的一部分
  • .mount()方法应该始终在整个应用配置和资源注册完成之后被调用,它的返回值是“根组件

一个例子:

//html
<div id="app"></div>
//js
app.mount('#app')

模板语法

Vue使用基于HTML的模板语法,使我们能够声明式地将其组件实例的数据绑定到呈现的DOM

所有的Vue模板都是语法层面合法的HTML

文本插值

最基本的数据绑定形式是文本插值,它使用的是“Mustache”语法(即双大括号)

双大括号标签会被替换为相应组件实例中msg属性的值,同时msg属性更改时它也会同步更新

<span>Message: {{ msg }}</span>

原始HTML

双括号会将数据解释纯文本,而不是HTML,若想插入HTML需要使用“v-html”【指令

<span>的内容会被替换为rawhtml属性的值,插值为纯HTML --- 数据绑定将会被忽略,注意,不能使用v-html来拼接组合模板,因为Vue不是一个基于字符串的模板引擎

<body><div id="app"><p>这是一个文本:{{rawhtml}}</p><p>这是一个HTML:<span v-html="rawhtml"></span></p></div><script>const app = Vue.createApp({data(){return {rawhtml: '<span style="color:red">这是一个加粗的文本</span>'}}});app.mount('#app');</script>
</body>

效果:

Attribute绑定

双大括号不能在HTML attributes中使用,想要响应式地绑定一个attribute(属性),应该使用:“v-bind”【指令

<div v-bind:id="dynamicId"></div>

简写

因为v-bind非常实用,因此Vue提供了特定的简写语法

语法:

v-bind:参数” 相当于 “:参数

<div :id="dynamicId"></div>

同名简写

如果attribute(属性)的名称与绑定的JavaScript值的名称相同,那么可以进一步简化语法,省略attribute值

<!-- 与 :id="id" 相同 -->
<div :id></div><!-- 这也同样有效 -->
<div v-bind:id></div>

布尔型Attribute

布尔型attribute根据 ture / false值 来决定attribute是否应该存在于该元素上

disabled就是常见例子之一

<button :disabled="isButtonDisabled">Button</button>

isButtonDisabled为真值 或 一个空字符串(即 <button disabled="">)时,元素会包含这个disabled的属性而当其为其他假值时 attribute将被忽略(即该值不存在)

动态绑定多个值

如果你有一个包含多个attribute【属性】的JavaScript对象,那么我们可以直接绑定

data() {return {objectOfAttrs: {id: 'container',class: 'wrapper'}}
}

通过不带参数的v-bind,可以将它们一次性绑定到单个元素上

<div v-bind="objectOfAttrs"></div>

使用JavaScript表达式

Vue所有的数据绑定都支持完整的JavaScript表达式

{{ number + 1 }}{{ ok ? 'YES' : 'NO' }}{{ message.split('').reverse().join('') }}<div :id="`list-${id}`"></div>

这些表达式都会被作为JavaScript,并且在执行过程中会被执行

JavaScript表达式的应用场景:

  • 文本插值{{双大括号}}
  • 任何Vue指令(以v-开头的)的值中

仅支持表达式

每个绑定仅支持单一表达式,也就是一段能够被求值的JavaScript代码

一个简单的判断方法:“是否可以被合法的写在return语句后面

下面的例子都是无效的:

<!-- 这是一个语句,而非表达式 -->
{{ var a = 1 }}<!-- 条件控制也不支持,请使用三元表达式 -->
{{ if (ok) { return message } }}

指令 Directives

指令是带有v-前缀的特殊attributeVue提供了很多内置指令

指令attribute的期望值是一个JavaScript表达式,一个指令的任务是在表达式的值发生变化时响应式地更新DOM

语法:

Name:Arguments.prevent = 'value'

指令名字Name

指令名字其实就是指令

例如:

  • v-bind:绑定指令
  • v-if:选择指令
  • v-for:循环指令

参数 Arguments

某些指令需要一个参数,例如v-bind指令来响应式地更新一个HTML attribute 

<a v-bind:href="url"> ... </a><!-- 简写 -->
<a :href="url"> ... </a>

这里的“href”就是一个参数,它告诉“v-bind”指令将表达式“url”的值绑定到元素的“href”的attribute

动态参数

指令参数上可以使用一个JavaScript表达式,需要包含在一对方括号内,这时就叫做动态参数

<a v-bind:[attributeName]="url"> ... </a><!-- 简写 -->
<a :[attributeName]="url"> ... </a>

动态参数值的限制

动态参数中表达式的值应该是一个字符串,或者是null

null代表显式移除该绑定,其它非字符串的值会报错

动态参数语法的限制

动态参数表达式中不能使用“空格”和“引号

修饰符 Modifiers

修饰符是以点开头的特殊后缀,表明指令需要一些特殊的方式被绑定

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

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

相关文章

QString 构建SQL语句可以往数据库中添加“\n“字符串

网上找了很多案例关于怎么样能在Mysql数据库中插入带\n的字符串&#xff0c;如图&#xff1a; 本以为很容易的一件事&#xff0c;没想到思考了半天&#xff0c;在这里记录一下&#xff0c;以为\n是转义字符的原因&#xff0c;所以并不是我想的那么简单。网上有用R&#xff08;“…

【算法业务】互联网风控业务中的拒绝推断场景算法应用分享(涉及半监督算法、异常检测、变分自编码、样本权重自适应调整、迁移学习等)

1. 业务目标和任务描述 该项目是很早期的一个工作&#xff0c;属于互联网信贷风控场景&#xff0c;研究并应用信贷中的拒绝推断任务&#xff0c;处理方式也许对于目前的一些业务还有参考意义&#xff0c;因此这里做下分享。拒绝推断是指在信贷业务中&#xff0c;利用已知的接受…

《2024 年全球人工智能趋势报告》:GPU、数据架构依然是巨大挑战

导语&#xff1a;对于众多行业用户而言&#xff0c;了解人工智能如何改变行业、如何利用人工智能保持领先地位&#xff0c;已成为一道时代的必答题。全球著名调研机构WEKA近日正式发布《2024 年全球人工智能趋势报告》&#xff0c;该报告基于全球1500名人工智能决策者的深度调查…

【项目】基于 Huffman 算法实现文件压缩

摘要&#xff1a;记录通过学习Huffman算法自主实现简单的文件压缩程序的过程。 什么是文件压缩 在古诗词中&#xff0c;这种信息的高度浓缩体现得淋漓尽致。例如王维的《使至塞上》中的名句 “ 大漠孤烟直&#xff0c;长河落日圆 ”。仅仅十个字&#xff0c;却描绘出了一幅极为…

MoveIt控制机械臂的运动实现——机器人抓取系统基础系列(二)

文章目录 概要1 用户接口和代码案例2 不同的规划类型2.1 关节空间规划2.2 工作空间规划2.3 笛卡尔空间规划 3 MoveIt运行实操4 相关资料推荐小结 概要 MoveIt为开发者提供了针对机械臂的集成化开发平台&#xff0c;由一系列操作相关的功能包组成&#xff0c;包括运动规划、操作…

从 Affine Particle-In-Cell (APIC) 到 Material Point Method (MPM 物质点法)

APIC与MPM Particle-In-Cell (PIC)Affine Particle-In-Cell (APIC)Material Point Method (MPM)关于边界投影等额外操作 Material Point Method (MPM 物质点法)是一种混合欧拉-拉格朗日视角物理仿真方法。 欧拉视角即网格视角&#xff0c;将空间划分为网格&#xff0c;通过表示…

从一到无穷大 #35 Velox Parquet Reader 能力边界

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言源码分析功能描述功能展望 引言 InfluxDB IOX这样完全不使用索引&#xff0c;只…

JavaEE: 深入探索TCP网络编程的奇妙世界(四)

文章目录 TCP核心机制TCP核心机制四: 滑动窗口为啥要使用滑动窗口?滑动窗口介绍滑动窗口出现丢包咋办? TCP核心机制五: 流量控制 TCP核心机制 书接上文~ TCP核心机制四: 滑动窗口 为啥要使用滑动窗口? 之前我们讨论了确认应答策略,对每一个发送的数据段,都要给一个ACK确…

centos7下openssh升级方法(编译安装)

注意&#xff1a; 首先打开两个或以上的shell连接&#xff0c;因为在升级过程中如果升级失败会导致不发新建shell连接&#xff1b;升级后使用xshell6,7连接&#xff0c;openssh版本对应修改&#xff0c;下载地址&#xff1a; https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/por…

Servlet day2(概念理解)

Servlet体系结构 Servlet相关配置 HTTP协议内容

leetcode746. 使用最小花费爬楼梯,动态规划

leetcode746. 使用最小花费爬楼梯 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶…

计算机毕业设计 基于SpringBoot的小区运动中心预约管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Java笔试面试题AI答之设计模式(4)

文章目录 16. 简述什么是观察者模式&#xff1f;基本概念主要特点实现方式应用场景优缺点 17. 请列举观察者模式应用场景 &#xff1f;18. 请用Java代码实现观察者模式的案例 &#xff1f;19. 什么是装饰模式&#xff1f;定义与特点结构与角色工作原理优点应用场景示例 20. 请用…

基于大数据的电子产品需求数据分析系统的设计与实现(Python Vue Flask Mysql)

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

【GlobalMapper精品教程】088:按点线面空间位置选择案例

按点线面空间位置选择的原则为:点线面的排列组合。 文章目录 一、选择线要素附近的点二、选择相交或触碰所选线的区和线三、选择包含点的区要素四、选择选定区域内的点要素一、选择线要素附近的点 启动该工具之前,首先要选择线,例如,选择某一段铁路5km范围之内的县城驻地。…

DeepSeek 2.5本地部署的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…

[Meachines] [Medium] Sniper RFI包含远程SMB+ powershell用户横向+CHM武器化权限提升

信息收集 IP AddressOpening Ports10.10.10.151TCP:80,135,139,445,49667 $ nmap -p- 10.10.10.151 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 10.0 |_http-server-header: Microsoft-IIS/10.…

三阶魔方还原法 勾上回下 上右左左右

三阶魔方还原法&#xff1a; 1小白花 &#xff08;转3换1&#xff09; 2白十字架 (侧与中心同色 下下) 3第一层 &#xff08;找位置角块放顶点 勾上回下&#xff09; 4 第二层 &#xff08;颜色边 勾上回下 再单白边 勾上回下&#xff09; 5 黄十字架 &#xff08;无黄边 压 勾…

0.设计模式总览——设计模式入门系列

在现代软件开发中&#xff0c;设计模式为我们提供了优秀的解决方案&#xff0c;帮助我们更好地组织代码和架构。本系列专栏将对设计模式的基本思想、原则&#xff0c;以及常用的分类、实现方式&#xff0c;案例对比、以及使用建议&#xff0c;旨在提高开发者对设计模式的理解和…

【算法】BFS系列之 拓扑排序

【ps】本篇有 3 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;课程表 .1- 题目解析 .2- 代码编写 2&#xff09;课程表 II .1- 题目解析 .2- 代码编写 3&#xff09;火星词典 .1- 题目解析 .2- 代码编写 一、算法简介 【补】图的基本概念 &#…