Vue3篇.01-简介及基本使用,项目创建方式, 模板语法, 事件监听, 修饰符

news2024/10/3 4:44:04

一.简介

1.概念

Vue 是一款用于构建用户界面的 JS框架, 基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型, 高效地开发用户界面。渐进式框架, 适应不同需求进行开发。

两个核心功能:

  • 声明式渲染:Vue 基于标准 HTML 拓展了一套模板语法,可声明式地描述最终输出的 HTML 和 JS状态之间的关系

  • 响应性:Vue 会自动跟踪 JS状态并在其发生变化时响应式地更新DOM

2.创建Vue项目的方式

  nvm: Node版本控制工具

(1)使用vite创建

  • 安装初始化npm init vue@latest

  • 选择配置

  • 进入项目目录,安装模块npm i, 启动项目 npm run dev

(2)使用vue-cli

  • 安装 npm i -g @vue/cli

  • 创建项目 vue create 项目名称

  • 选择相关配置项

  • 启动项目 npm run serve 工程环境,启动慢

(3)使用可视界面

vue ui

二.基本使用

1.模板语法

(1)文本插值

最基本的数据绑定形式是文本插值, {{ }} "Mustache"语法, 插值表达式

  • 插值表达式Mustache,只是内容占位符 ,不覆盖原因内容,

  • 只能用在元素内容节点,不能用在属性节点 (v-bind)

  • 不能识别标签 (v-html)

(2)v-html

{{ }}不能识别标签, 会将数据解释为纯文本, 插入HTML需使用v-html指令

(3)属性绑定 v-bind:

{{ }}不能在 HTML attributes 中使用。想要响应式地绑定一个 attribute,应该使用 v-bind 指令(简写 英文 : )

    <div> 最新信息 : {{ msg }}</div>   // msg的值渲染到页面中
    <div> 最新信息 : <h1 v-html="msg" ></h1></div>   //h1标签内容替换为msg的值, 并以h1格式显示
    <div :class="pinkCls"></div>   // 属性动态绑定单个值
    <div :class="objCls"></div>    // 动态绑定多个值  objCls为一个对象, 其中包含多个属性及值

2.事件处理

(1)监听事件 v-on:

简写 @: , 使用该指令监听DOM事件, 在事件触发时执行对应的 JS

    <!-- 监听事件 -->
    <!-- 1. 内联事件处理器:事件被触发时执行的内联 JS 语句 (与 onclick 类似) -->
    <!-- 点击按钮实现count++, 并将更新后的值显示在页面上 -->
    <button @click="count++">Add 1</button>
    <!-- 2. 方法事件处理器:一个指向组件上定义的方法的属性名或是路径。 -->
    <!-- 绑定addNum方法, 方法中对count进行处理, 绑定方法时也可传参-->
    <button @click="addNum(5)">+ step </button>
    <!-- 3. 在内联处理器中访问事件参数  原生DOM中事件对象 e,  访问时传入 $event, 也可使用内联箭头函数 -->		
    <button @click="addNum(4,$event)"> + 4</button>
    <button @click=" (e) => addNum(3,e)"> + 3</button>
    <div>更新count: {{ count }}</div>

(2)事件修饰符

  • 阻止冒泡  .stop

  • 阻止默认行为  .prevent

  • 自身触发 .self

  • 只触发一次  .once

    <!-- 事件修饰符  可使用链式书写 e.g: @click.stop.prevent-->
    <div class="parent" @click="parentClick">
    <!-- 1. 阻止冒泡 .stop   如果没阻止冒泡, 只点击son1, 也会触发parent的点击事件-->
        <div class="son1" @click.stop="sonClick"  style="background-color: skyblue;">我是son1==> .stop </div>
        <!-- 2. 阻止默认行为 .prevent 也可以只有修饰符  e.g: 阻止a链接跳转, 阻止表单提交 -->
        <a class="son2" @click.prevent="jump"  :href="url" style="background-color: orchid;"> 我是son2==> .prevent </a>
        <form @submit.prevent></form>
        <!-- 3. 自身触发   点击son3-son不会触发son3的点击事件 -->
        <div class="son3" @click.self="sonClick"  style="background-color: orange;">
        我是son3==> .self 
       	   <div @click.self="son_sonClick" style="background-color: blue;">son3-son</div>
        </div>
    </div>

(3)按键修饰符

  • 按键别名: .enter, .tab, .delete (捕获“Delete”和“Backspace”两个按键), .esc, .space,.up,.down, .left, .right

  • 系统按键修饰符: .ctrl, .alt, .shift, .meta

  • 按键修饰符用于可获取焦点的元素中, e.g:input, [div不可(可使用其他方式实现)]

    <!--  按键修饰符 -->
    <!-- 当按下回车, 盒子变色 -->
    <input @keyup.enter="colChange">
    <div :class="colCls">点我,我就变色啦!!!</div>

(4).exact修饰符

    允许控制触发一个事件所需的确定组合的系统按键修饰符

    <!-- 当按下 Ctrl 时,即使同时按下 Alt 或 Shift 也会触发 -->
    <button @click.ctrl="onClick">A</button>
    <!-- 仅当按下 Ctrl 且未按任何其他键时才会触发 -->
    <button @click.ctrl.exact="onCtrlClick">A</button>
    <!-- 仅当没有按下任何系统按键时触发 -->
    <button @click.exact="onClick">A</button>

(5)鼠标按键修饰符

.left, .right, .middle 修饰符将处理程序限定为由特定鼠标按键触发的事件

<template>
	<!-- template模板 中写html结构, vue2中模板中只允许包含一个根节点,  在vue3中支持多个根节点, 通常我们还是会使用一个大的盒子包裹起来,在布局和样式中更加方便, 层层递进-->
  <div></div>
</template>

<script>
	export default {
		// 数据
		data(){
			return{
				count: 0,
				// 默认类名
				colCls: "pinkCls" ,
				url:''
			}
		},
		// 处理方法
		methods:{
			// 颜色改变
			colChange(){
				this.colCls = "blueCls"
			},
			// 实现 ++  也可传参
			addNum(step,e){
				 this.count += step 
				 console.log(e);
			},
			parentClick(){
				alert('parent')
			},
			sonClick(){
				alert('son')
			},
			son_sonClick(){
				alert('son---son')
			},
			jump(){
				this.url = "https://blog.csdn.net/qq_54379580?type=blog" 
			}
		},
	}
</script>

<style>
    *{
        margin: 300px auto;
    }
    div.pinkCls{
        width: 200px;
        height: 200px;
        background-color:  pink ;
    }
    div.blueCls{
        width: 200px;
        height: 200px;
        background-color: skyblue;
    }
    div.parent{
        width: 500px;
        height: 500px;
        background-color: pink;
    }
</style>

参考文档: https://cn.vuejs.org/guide/essentials/event-handling.html

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

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

相关文章

在云原生的趋势下,不掌握Go语言可能不太行

云原生技术已经是不可逆的趋势 云原生技术使组织能够在公共云、私有云和混合云等现代动态环境中构建和运行可扩展的应用程序,其中容器、服务网格、微服务、不可变基础设施和声明式 API 等都是云原生的重要技术内容。 这些新技术的出现使松散耦合的系统具有弹性、可管理和可观…

FPGA基于VDMA实现任意分辨率视频输出显示,高度贴近真实项目,提供工程源码和技术支持

目录1、前言2、任意分辨率视频输出理论基础3、VDMA实现数据缓存4、工程1&#xff1a;Kintex7使用VDMA5、工程2&#xff1a;Zynq7100使用VDMA6、上板调试验证并演示7、福利&#xff1a;工程代码的获取1、前言 之前写过一篇FPGA纯verilog实现任意分辨率视频输出显示&#xff0c;…

hume项目k8s的改造

hume项目k8s的改造 一、修改构建目录结构 1、在根目录下添加build-work文件夹 目录结构如下 [rootk8s-worker-01 build-work]# tree . . ├── Dockerfile ├── hume │ └── start.sh └── Jenkinsfile2、每个文件内容如下 Dockerfile FROM ccr.ccs.tencentyun…

数据结构与算法基础(王卓)(10):案例分析与实现(多项式;稀疏多项式;图书管理系统(略);)

题干&#xff1a; 用线性表和链表的方式&#xff0c;分别实现&#xff08;稀疏&#xff09;多项式的 定义&#xff08;构造框架&#xff09;创建加减乘&#xff08;多项式&#xff09;线性表的创建&#xff1a; &#xff08;略&#xff0c;相较于其他操作难度不&#xff0c;以…

亚马逊真人测评好还是自养号测评好 深度剖析讲解

关于真人测评和自养号哪个好&#xff0c;一直都是老生常谈的问题了。实际操作下来到底哪一个更好呢&#xff1f;今天陈哥给大家详细分析一下。 先说自养号。所谓的自养号&#xff0c;说白了就是通过搭建国外的真实买家环境&#xff0c;然后购买资料自己注册的账号。 很多工作…

Java300集,学完即可就业

学习java首先我们要明白Java是什么&#xff1f;Java是一门面向对象的编程语言&#xff0c;不仅吸收了C语言的各种优点&#xff0c;还摒弃了C里难以理解的多继承、指针等概念&#xff0c;因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表&a…

K8s 架构简介(一)

一、前言 在开始学习K8s之前&#xff0c;让我们对容器有一个基本的了解 1.1 什么是容器 一个容器镜像是一个可运行的软件包&#xff0c;其中包含了一个完整的可执行程序&#xff0c;包括代码和运行时需要应用、系统库和全部重要设置的默认值。 通过将应用程序本身&#xff…

虹科新闻|虹科与Telco Systems正式建立合作伙伴关系

近日&#xff0c;虹科与美国Telco Systems达成战略合作&#xff0c;虹科正式成为Telco Systems在中国区域的认证授权代理商。未来&#xff0c;虹科将携手Telco Systems&#xff0c;共同为新一代边缘计算和企业网络提供创新通信软件产品。虹科及Telco Systems双方都对彼此的合作…

C语言(逻辑运算符和条件运算符)

目录 一.逻辑运算符 1.原理 2.等级排序 3.求值顺序 二.条件运算符:? 一.逻辑运算符 1.原理 && 与&#xff08;条件都为真&#xff0c;才为真&#xff09; || 或&#xff08;一个条件为真&#xff0c;才为真&#xff09; &#xff01; 非&#xff08;条件为假&…

【R语言(二):Nomogram(诺莫图/列线图)绘制 / R语言逻辑回归分析】

R语言(二)&#xff1a;Nomogram(诺莫图/列线图)绘制 1、基本概念 Nomogram&#xff0c;中文常称为诺莫图或者列线图。简单的说是将Logistic回归或Cox回归的结果进行可视化呈现。它根据所有自变量回归系数的大小来制定评分标准&#xff0c;给每个自变量的每个取值水平一个评分&…

怎样的目标管理能真正实现目标?做到这3点就对了

目标应该是每个人人生中接触最多的一样东西了&#xff0c;大到分分钟几百万上下的项目目标&#xff0c;小到一次考试。目标能不能完成&#xff0c;关键还是看目标管理有没有做好&#xff0c;做到下面这三点&#xff0c;不论是在职场中管团队&#xff0c;还是在生活中管个人&…

十四、平衡二叉树

1、看一个案例&#xff08;说明二叉排序树可能的问题&#xff09; 给你一个数列{1,2,3,4,5,6}&#xff0c;要求创建一棵二叉排序树&#xff08;BST&#xff09;&#xff0c;并分析问题所在。 上面二叉排序树存在问题分析&#xff1a; 左子树全部为空&#xff0c;从形式上看&…

tr命令笔记

tr 是Unix命令行专家工具箱中的一件万能工具。它可用于编写优雅的单行命令。 tr 可以对 来自标准输入的内容进行字符替换、字符删除以及重复字符压缩。 tr 是translate&#xff08;转换&#xff09;的简写&#xff0c; 因为它可以将一组字符转换成另一组字符。 tr 只能…

Windows 11 + WSL(ubuntu 20.04) + CLion(2022.3) 编译OpenJDK12

编译OpenJDK12 目录编译OpenJDK12前言一、下载OpenJDK源码二、编译OpenJDK参考https://openjdk.org/groups/build/doc/building.html1&#xff1a;安装编译所需的组件2&#xff1a;执行编译命令3&#xff1a;验证编译结果三、在Clion中调试OpenJDK源码1&#xff1a;Clion中配置…

R语言GD包地理探测器分析时报错、得不到结果等情况的解决方案

本文介绍在利用R语言的GD包&#xff0c;实现自变量最优离散化方法选取与执行、地理探测器&#xff08;Geodetector&#xff09;操作时&#xff0c;出现各类报错信息、长时间得不到结果等情况的解决方案。 在之前的文章R语言GD包基于栅格图像实现地理探测器与连续参数的自动离散…

深度解读Webpack中的loader原理

一、前言 webpack 是一个现代 JavaScript 应用的静态模块打包器。那么 webpack 是怎样实现不同种类资源模块加载的呢&#xff1f; 没错就是通过 loader。loader 用于对模块的源代码进行转换。loader 可以使你在 import 或加载模块时预处理文件。 我们带着下面几个问题&#…

css中的盒子模型

1、盒子模型&#xff1a;CSS中规定盒子分别由&#xff1a;内容区域&#xff08;content&#xff09;、内边距区域&#xff08;padding&#xff09;、边框区域&#xff08;border&#xff09;、外边距区域&#xff08;margin&#xff09;构成。 2、盒模型分为IE盒模型和W3C标准…

内存泄漏检测组件 -- hook

目录 hook malloc与free出现的问题 builtin_return_address(N) C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 hook malloc与free出现的问题 #define _GNU_SOURCE #include <stdio.h> #include <dlfcn.h> #include <stdlib.h> /****…

Android Studio多渠道打包及自动化构建

Android 有不同的应用市场&#xff0c;也就是不同的渠道&#xff0c;需要为每个应用市场打一个安装包&#xff0c;但主要的代码是一样的&#xff0c;可能部分资源不一样&#xff0c;部分代码不一样&#xff0c;如果每个渠道都需要修改&#xff0c;然后打包&#xff0c;非常耗时…

思科三层交换机配置

三层交换机是什么为什么会有三层交换机三层交换机的工作原理三层交换机的应用1.三层交换机是什么 三层交换机就是具有部分路由器功能的交换机&#xff0c;工作在OSI网络标准模型的第三层&#xff1a;网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换&#xff0c;…