Vue 基础语法介绍

Vue.js 是一个渐进式的 JavaScript 框架,广泛用于构建用户界面和单页应用(SPA)。它的核心思想是通过简单的模板语法和响应式的数据绑定机制,使得开发者能够更直观地创建动态交互的网页。本文将介绍 Vue.js 的一些基础语法,帮助你快速入门。

1. Vue 实例

Vue 的核心是 Vue 实例。每一个 Vue 应用都是通过创建一个新的 Vue 实例来启动的。

创建 Vue 实例

// 创建一个 Vue 实例
const app = new Vue({el: '#app', // 绑定到页面的 DOM 元素data: {message: 'Hello, Vue!' // Vue 实例的数据}
});

在这个例子中,我们通过 new Vue() 创建了一个 Vue 实例,并且将它绑定到 HTML 中的 id="app" 元素上。在实例的 data 属性中定义了一个变量 message,它的值为 'Hello, Vue!'

HTML 绑定

在 HTML 中,我们可以通过 {{ message }} 来插入 data 中的变量。

<div id="app"><p>{{ message }}</p> <!-- 显示 Vue 实例中的 message -->
</div>

此时,页面上会显示 "Hello, Vue!",因为 message 的值被 Vue 实例绑定到了 DOM 上。

2. 数据绑定

Vue 提供了多种方式来绑定数据,包括插值绑定、属性绑定和事件绑定。

插值绑定

通过 {{}} 来插入数据。插值表达式的结果会自动更新。

<p>{{ message }}</p>

当 Vue 实例中的 message 数据发生变化时,页面上的内容会实时更新。

属性绑定

使用 v-bind 指令可以绑定 HTML 属性到 Vue 实例的数据。

<!-- 动态绑定属性 -->
<a v-bind:href="url">点击这里</a>

如果 url 是 Vue 实例中的一个数据属性,那么它的值将动态更新到 href 属性上。

类名绑定

v-bind:class 可以动态地绑定类名。

<p v-bind:class="className">这段文本的类名是动态的。</p>

如果 className 是 Vue 实例中的数据,它的值会直接决定该元素的 CSS 类名。

样式绑定

同样,v-bind:style 可以动态绑定内联样式。

<p v-bind:style="styleObject">动态样式</p>

styleObject 是一个包含样式属性的对象,如:

data: {styleObject: {color: 'red',fontSize: '20px'}
}

3. 事件处理

Vue 提供了 v-on 指令来监听 DOM 事件并调用 Vue 方法。

事件绑定

<button v-on:click="changeMessage">点击我</button>

当用户点击按钮时,会调用 Vue 实例中的 changeMessage 方法。

methods: {changeMessage() {this.message = '你点击了按钮!';}
}

简化的事件绑定

可以通过 @ 来简化 v-on 的写法。

<button @click="changeMessage">点击我</button>

效果与 v-on:click="changeMessage" 相同。

4. 条件渲染

Vue 提供了 v-ifv-show 来根据条件控制元素的显示与隐藏。

v-if 指令

<p v-if="isVisible">这是一个条件渲染的段落</p>

v-if 会根据 isVisible 的值来决定是否渲染这个元素。当 isVisibletrue 时,元素会被渲染;当它为 false 时,元素会从 DOM 中移除。

v-show 指令

<p v-show="isVisible">这个段落始终存在于 DOM 中,但是根据条件显示或隐藏</p>

v-if 不同,v-show 会始终保留元素在 DOM 中,只是通过 CSS 来控制其显示与隐藏。

5. 列表渲染

Vue 提供了 v-for 指令来遍历数据并生成列表。

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

这里,v-for="item in items" 会遍历 items 数组中的每一项,并为每个元素生成一个 <li> 标签。:key 是一个优化性能的关键,帮助 Vue 跟踪每个列表项的身份。

6. 双向绑定

Vue 提供了 v-model 指令来实现表单控件和数据的双向绑定。

表单输入绑定

<input v-model="message" placeholder="输入一些内容">

v-model 会自动地将输入框的值与 Vue 实例中的 message 进行双向绑定。当用户在输入框中输入内容时,message 的值会自动更新,反之,message 的值发生变化时,输入框中的内容也会更新。

其他控件

v-model 不仅支持输入框,还支持其他表单元素,比如单选框、复选框、文本域等。

<!-- 复选框 -->
<input type="checkbox" v-model="isChecked"> 是否选中<!-- 单选框 -->
<input type="radio" v-model="picked" value="A"> 选项 A
<input type="radio" v-model="picked" value="B"> 选项 B

7. 计算属性

计算属性是 Vue 实例中的一种特殊属性,类似于方法,但它们是基于依赖缓存的,只有在相关依赖发生变化时才会重新计算。

计算属性示例

computed: {reversedMessage() {return this.message.split('').reverse().join('');}
}

reversedMessage 会返回 message 字符串的反转版本,并且只有当 message 发生变化时,reversedMessage 才会重新计算。

结语

本文介绍了 Vue 的一些基础语法,包括如何创建 Vue 实例、数据绑定、事件处理、条件渲染、列表渲染、双向绑定以及计算属性。这些基础知识为你进一步深入学习 Vue.js 打下了良好的基础。掌握这些基本概念之后,你可以更好地利用 Vue 构建动态的 Web 应用。

希望这篇博客对你有所帮助!如果有任何问题或建议,欢迎留言讨论。

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

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

相关文章

Flask + Pear Admin Layui 快速开发管理后台

框架介绍 Flask 就不用过多介绍了, Pear Admin Layui 是基于 Layui 的一套管理后台前端开源模板, 主打一个开箱即用, 对于不喜欢 React/Vue 等这些还需要大量学习成本的前端开发者来说, 可以说是相当友好了. 项目官网: https://gitee.com/pear-admin/pear-admin-layui 项目的作…

git push

在 git push 命令中&#xff0c;分支名称的顺序和含义非常重要。其基本格式如下&#xff1a; git push <remote> <local_branch>:<remote_branch>各部分解释 <remote>&#xff1a;远程仓库的名称&#xff08;如 origin&#xff09;。<local_branc…

wordpress 利用 All-in-One WP Migration全站转移

导出导入站点 在插件中查询 All-in-One WP Migration备份并导出全站数据 导入 注意事项&#xff1a; 1.导入部分限制50MB 宝塔解决方案&#xff0c;其他类似&#xff0c;修改php.ini配置文件即可 2. 全站转移需要修改域名 3. 大文件版本&#xff0c;大于1G的可以参考我的…

蓝桥杯补题

方法技巧&#xff1a; 1.进行循环暴力骗分&#xff0c;然后每一层的初始进行判断&#xff0c;如果已经不满足题意了&#xff0c;那么久直接continue&#xff0c;后面的循环就不用浪费时间了。我们可以把题目所给的等式&#xff0c;比如说有四个未知量&#xff0c;那么我们可以用…

MySQL:锁

按粒度分类 全局锁 含义&#xff1a;全局锁会锁定整个数据库实例&#xff0c;在其生效期间&#xff0c;其他事务无法对数据库进行任何读写操作。常用于数据迁移、数据备份场景。 表级锁 表锁&#xff1a;是对整张表进行锁定的机制。实现逻辑简单&#xff0c;加锁和释放锁速…

数字政府政务服务领域智能化应用解决方案

数字政府政务服务领域智能化应用 解决方案 一、方案背景 在数字经济蓬勃发展的当下&#xff0c;数字化转型已成为政府提升治理能力、优化公共服务、增强竞争力的关键路径。党的十九届四中全会明确提出 “推进数字政府建设”&#xff0c;这为政府的数字化转型指明了方向。 随…

03--Deepseek服务器部署与cjson解析

一、ollama部署deepseek模型 1、Ollama 是一个开源的本地大语言模型运行框架&#xff0c;专为在本地机器上便捷部署和运行大型语言模型&#xff08;LLM&#xff09;而设计。 Ollama 教程&#xff1a;从 0 到 1 全面指南 教程【全文两万字保姆级详细讲解】 -CSDN博客 1.下载o…

栈(算法)

在 C 里&#xff0c;栈是一种遵循后进先出&#xff08;LIFO&#xff09;原则的数据结构。下面从多个方面为你介绍 C 栈&#xff1a; 1. 使用标准库中的std::stack C 标准库提供了std::stack容器适配器&#xff0c;能方便地实现栈的功能。以下是简单示例&#xff1a; cpp #in…

UniApp 页面布局自定义头部导航

动态计算头部高度与内容偏移量&#xff1a;实现 UniApp 页面布局的精准适配 在移动端应用开发中&#xff0c;页面布局的精准适配是一个关键问题。尤其是在 UniApp 中&#xff0c;不同设备的屏幕尺寸、状态栏高度以及头部布局的差异&#xff0c;可能导致页面内容错位或显示不全…

verilog学习--1、语言要素

先看一个例子 /*This is first Verilog progaram*/ timescale 1ns/1ns module HalfAdder(A,B,Sum,Carry);input A,B;output Sum, Carry; /**/assign #2 SumA^B;assign #5 CarryA&B&#xff1b; endmodule; Verilog以module为单位编写&#xff0c;每个文件一个module&#…

AC 自动机 洛谷P3808 P3796 P5357

洛谷P3808 #include <bits/stdc.h> using namespace std; const int maxn 1e6 5; int ch[maxn][30], fa[maxn], End[maxn]; int cnt 0 , n; int get_num(char c){return c - a;} void build(string s){int cur 0, len s.length();for(int i 0; i < len; i){int…

C++蓝桥杯实训篇(二)

片头 嗨咯~小伙伴们&#xff01;今天我们来一起学习算法和贪心思维&#xff0c;准备好了吗&#xff1f;咱们开始咯&#xff01; 第1题 数位排序 对于这道题&#xff0c;我们需要自己写一个排序算法&#xff0c;也就是自定义排序&#xff0c;按照数位从小到大进行排序。 举一…

redisson常用加锁方式

RLock lock redissonClient.getLock("lock:order:" order);和redissonDistributedLocker.tryLock("lock:order:" order&#xff0c; TimeUnit.SECONDS, RedisLockKey.DEFAULT_WAIT_TIME, RedisLockKey.DEFAULT_HOLD_TIME);这两种加锁方式的区别如下&…

Go 微服务框架 | 路由实现

文章目录 不用框架实现web接口实现简单的路由实现分组路由支持不同的请求方式支持同一个路径的不同请求方式前缀树应用前缀树完善路由代码 不用框架实现web接口 // blog main.go 文件 package mainimport ("fmt""log""net/http" )func main() {…

zabbix中通过模板实现自动发现对tcp端口批量监控

主要为了解决监控大量端口&#xff0c;避免繁琐的重复操作监控项和触发器 诸位~ 仅供参考哈 自动发现监控参考地址: https://blog.csdn.net/qq_37510195/article/details/130893655 模板 首先创建一个模板 自定义名称和群组 创建自动发现规则 模板——自动发现——创建发现规则…

Mysql备忘记录

1、简介 Mysql操作经常忘记命令&#xff0c;本文将持续记录Mysql一些常用操作。 2、常见问题 2.1、忘记密码 # 1、首先停止Mysql服务 systemctl stop mysqld # windows 从任务管理器里面停 # 2、更改配置文件 my.cnf (windows是 ini文件) vim /etc/my.cnf 在[mysqld]下面添…

【蓝桥杯】15届JAVA研究生组F回文字符串

一、思路 1.这题去年考的时候想的是使用全排列进行尝试&#xff0c;实际不用这么麻烦&#xff0c;只用找到第一个和最后一个非特殊字符串的位置&#xff0c;然后分别向内检查是否对称&#xff0c;向外检查是否对称直到左指针小于0(可以通过添加使其对称) 2.至于如何找到第一个…

X 进制减法

题目链接&#xff1a; 思路&#xff1a; X进制数321怎么转换为十进制数为65&#xff1f;如下图&#xff1a; ①题目要求我们求 A - B 的最小值&#xff0c;对第 i 位&#xff0c;要求 A[i] - B[i] 的最小值&#xff0c;当进制越小的时候差值越小&#xff0c;但进制要比 max&…

java线程安全-单例模式-线程通信

首先看看单例模式的写法 首先我们先来回顾一下饿汉式单例模式&#xff1a; class Singleton{private static Singleton singletonnew Singleton();private Singleton(){}public static Singleton getInstrance(){return singleton;} } public class Test{public static void …

大数据技术之SPARK

Spark Core 什么是 RDD 代码中是一个抽象类&#xff0c;它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合 弹性 存储的弹性&#xff1a;内存与磁盘的自动切换&#xff1b; 容错的弹性&#xff1a;数据丢失可以自动恢复&#xff1b; 计算的弹性&#xff1a;…