Vue的基础语法(初学Vue)

ops/2025/1/31 5:54:50/

目录

一、Vue介绍

1.概念

2.关键特性和优势

二、Vue初体验

1.CDN引入

2.本地引入

3.初体验-动态数据

4.初体验-列表数据

5.初体验-计数器

6.初体验计数器(高级)

7.原生实现计数器

8.options-data属性

9.options-methods属性


一、Vue介绍

1.概念

Vue.js(通常简称为 Vue)是一款流行的开源 JavaScript 前端框架,用于构建交互式的用户界面和单页面应用程序(SPA)。Vue 的设计灵感主要来自于 Angular 和 React,但它的核心库更小巧,易于上手,并且具有更快的渲染速度。

2.关键特性和优势

  1. 简单易用:Vue 的核心库非常轻量级,学习曲线较低,使得新手和有经验的开发者都能快速上手。

  2. 响应式数据绑定:Vue 使用了响应式的数据绑定机制,当数据发生变化时,相关的视图会自动更新,开发者无需手动操作 DOM。

  3. 组件化开发:Vue 鼓励将页面拆分成多个组件,每个组件负责自己的一部分功能,便于复用和维护,同时提高了代码的可读性和可维护性。

  4. 虚拟 DOM:Vue 使用虚拟 DOM 技术来优化页面渲染性能,通过比较虚拟 DOM 的差异,只对需要更新的部分进行实际的 DOM 操作,从而提高了页面的渲染效率。

  5. 单文件组件:Vue 支持使用单文件组件(.vue 文件)来组织代码,将模板、样式和逻辑封装在同一个文件中,便于管理和维护。

  6. 生态系统丰富:Vue 生态系统庞大而丰富,拥有大量的第三方库和插件,可以满足各种需求,例如路由管理、状态管理、UI 组件库等。

  7. 灵活性:Vue 采用了渐进式的设计理念,可以逐步引入到现有项目中,也可以作为完整的前端解决方案使用。

二、Vue初体验

1.CDN引入

vue的CDNicon-default.png?t=N7T8http://unpkg.com/vue

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><h2>哈哈哈哈</h2><p>我是内容,嚯嚯嚯</p><div id="app"></div><!--CDN引入--><script src="http://unpkg.com/vue"></script><script>// 使用Vueconst app = Vue.createApp({template: `<h2>Hellp World!</h2><span>呵呵呵</apan>`})// 挂载app.mount("#app")</script>
</body>
</html>

2.本地引入

首先将vue代码保存到本地

vue代码地址从这里获取

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"></div><script src="./lib/vue.js"></script><script>// 使用Vueconst app = Vue.createApp({template: `<h2>Hellp Vue!</h2><span>呵呵呵</apan>`})// 挂载app.mount("#app")</script>
</body></html>

3.初体验-动态数据

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"></div><script src="./lib/vue.js"></script><script>const app = Vue.createApp({//插值语法:{{title}}template:`<h2>{{message}}</h2>`,data:function(){return{title:"Hello World",message:"你好啊,Vue3"}}})app.mount("#app")</script>
</body></html>

4.初体验-列表数据

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"></div><script src="./lib/vue.js"></script><script>const app = Vue.createApp({//插值语法:{{title}}template: `<h2>电影列表</h2><ul><li v-for = "item in movies">{{item}}</li></ul>`,data: function () {return {message: "你好啊,利银行",movies: ["大话西游", "星际穿越", "到梦空间", "少年派", "飞驰人生", "侠岚"]}}})app.mount("#app")</script>
</body></html>

5.初体验-计数器

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"></div><script src="./lib/vue.js"></script><script>const app = Vue.createApp({template: `<h1>当前计数:{{counter}}</h1><button @click="increment">+1</button><button @click="decrement">-1</button>`,data: function () {return {counter: 0}},methods: {increment: function () {this.counter++},decrement: function () {this.counter--}}})app.mount("#app")</script>
</body></html>

6.初体验计数器(高级)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"><h1>当前计数:{{counter}}</h1><button @click="increment">+1</button><button @click="decrement">-1</button></div><script src="./lib/vue.js"></script><script>const app = Vue.createApp({data: function () {return {counter: 0}},methods: {increment: function () {this.counter++},decrement: function () {this.counter--}}})app.mount("#app")</script>
</body></html>

7.原生实现计数器

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><h1>当前计数:<span class="count"></span></h1><button class="add">+1</button><button class="sub">-1</button><script>//1.获取domconst h1El = document.querySelector("h1")const countEl = document.querySelector(".count")const addBtnEl = document.querySelector(".add")const subBtnEl = document.querySelector(".sub")//2.定义一个变量记录数据let count = 100countEl.textContent = count//3.监听按钮点击addBtnEl.onclick = function () {count++countEl.textContent = count}subBtnEl.onclick = function () {count--countEl.textContent = count}</script>
</body></html>

8.options-data属性

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><h2>{{message}}</h2><button @click = "changeMessage">改变message</button></div><script src="./lib/vue.js"></script><script>const app = Vue.createApp({//data: option apidata:function(){return{message:"Hello Data"}},// methods : ootion apimethods:{changeMessage:function(){this.message = "Hello xjy"}}})app.mount("#app")</script>
</body>
</html>

9.options-methods属性

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><h1>当前计数:{{counter}}</h1><button @click="increment">+1</button><button @click="decrement">-1</button></div><script src="./lib/vue.js"></script><script>const app = Vue.createApp({data:function(){return{counter:0}},methods:{increment:function(){this.counter++},decrement:function(){this.counter--}}})app.mount("#app")</script>
</body>
</html>

http://www.ppmy.cn/ops/8465.html

相关文章

Point类的声明和实现

定义一个Point类&#xff0c;代表平面上的一个点&#xff0c;其横坐标和纵坐标分别用x和y表示&#xff0c;设计Point类的成员函数&#xff0c;实现并测试这个类。 主函数中输入两个点的坐标&#xff0c;计算并输出了两点间的距离。请根据主函数实现Point类。 裁判测试程序样例…

PyTorch|保存及加载模型、nn.Sequential、ModuleList和ModuleDict

系列文章目录 PyTorch|Dataset与DataLoader使用、构建自定义数据集 PyTorch|搭建分类网络实例、nn.Module源码学习 pytorch|autograd使用、训练模型 文章目录 系列文章目录一、保存及加载模型&#xff08;一&#xff09;保存及加载模型的权重&#xff08;二&#xff09;保存及…

Apache DolphinScheduler 社区 3 月月报

各位热爱 DolphinScheduler 的小伙伴们&#xff0c;DolphinScheduler 社区月报开始更新啦&#xff01;这里将记录 DolphinScheduler 社区每月的重要更新。 社区为 DolphinScheduler 3.2.x 版本做了诸多功能改进和 bug 修复 DolphinScheduler 月度 Merge Stars 感谢以下小伙伴 …

如何修改支付宝号?日赚300+,纯撸信息差!

最近更新的内容中&#xff0c;很多都是给大家讲到的“信息差”。但是&#xff0c;真正能理解信息差&#xff0c;并且使用信息差赚钱的&#xff0c;有多少&#xff1f; 包括前几天给朋友们分享的软件项目&#xff0c;靠信息差月入3万&#xff0c;直接复制粘贴搞定&#xff01;和…

【感受C++的魅力】:用C++演奏歌曲《起风了》——含完整源码

文章目录 一、运行效果二、代码实现1. 引入部分2. 枚举3. 音色定义4. 演奏速度定义5. 特殊定义6. 模拟风声 三、完整代码 一、运行效果 【C的魅力】&#xff1a;用C演奏歌曲《起风了》 二、代码实现 1. 引入部分 #include <iostream> #include <Windows.h> #prag…

Docker镜像下载

离线安装&#xff1a;物理传输 # 将镜像压缩成tar包 (将nginx 镜像打成tar包&#xff0c;然后拷贝到新机器) docker save -o xxxx.tar nginx:v1.0 # 新的机器加载 docker load -i xxx.tar # 在线安装&#xff1a;先上传到远程镜像仓库 docker tag nginx:v1.0 ldj/nginx:v1.0 #登…

Vue3 Reactive和Ref

当你在使用Vue 3时&#xff0c;reactive 和 ref 是两个常用的响应式API。它们都是用来跟踪状态变化并在UI中进行响应式更新的。 1. ref ref 用于创建一个响应式的基本数据类型变量&#xff0c;例如数字、字符串等。它返回一个带有 .value 属性的对象&#xff0c;该属性包含了…

excel试题转word格式

序号试题选项答案 格式如上。输出后在做些适当调整就可以。 import pandas as pd from docx import Document from docx.shared import Inches# 读取Excel文件 df pd.read_excel(r"你的excel.xlsx")# 创建一个新的Word文档 doc Document()# 添加标题 doc.add_headi…