简单易懂:Vue3框架三天速成(一)

news2024/9/26 5:17:49

前言:学习Vue框架首先需要具备基本的HTML5、CSS3、JavaScript基础,了解基本概念以及用法再来学习Vue会事半功倍!

一、初识Vue

  • Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。
  • Vue 只关注视图层, 采用自底向上增量开发的设计。
  • Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

Vue2.下载链接:安装 — Vue.js

1、Vue的使用方式

1、直接下载并且通过script标签引入HTML页面

2、使用如下链接引入

  • Staticfile CDN(国内) : https://cdn.staticfile.org/vue/3.0.5/vue.global.js

  • unpkg:https://unpkg.com/vue@next, 会保持和 npm 发布的最新的版本一致。

  • cdnjs : https://cdnjs.cloudflare.com/ajax/libs/vue/3.0.5/vue.global.js

 代码示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>VueTest</title>
<--引入VUE!-->
<script src="https://cdn.staticfile.org/vue/3.0.5/vue.global.js"></script>
</head>
<body>
</body>
</html>

 

二、Vue基本语法

1、创建一个Vue App

const app=Vue.createApp({})

2、创建并将其挂载到组件(标签)

const app=Vue.createApp({})
<!--创建一个div标签-->
<div id="hello-vue"></div>
<!--将app挂载到div上-->
Vue.createApp(app).mount('hello-div')

3、返回数据并且回显到页面

data() {
return{
message:‘hello!’
  }
}

4、完整示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>VueTest</title>
    <script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<div id="hello-vue">
    <h1>{{message}}</h1>
    <br>
    <p>{{name}}</p>
</div>

<script>
    const app=Vue.createApp({
        data()
        {
            return {
                message : 'Hello!',
                name:'Vue'
            }
        }
    })
 app.mount('#hello-vue')
</script>
</body>
</html>

结果:

Tips:注意return后面的‘{’不能换行,否则会报错或者无法正常返回数据!

血的教训!!!

极其睿智且令人无语的语法规则!!

流汗黄豆.jpg

 错误示例:X

data()
{
    return
  {
    message:‘hello’
  }
}

正确示例:

data()
{
    return {
    message:‘hello’
  }
}

5、添加方法

通过在创建的app里添加methods关键字来添加对于挂载的dom对象执行的方法

如果需要对组件进行事件的绑定就可以通过methods里的方法来实现

const app = Vue.createApp({
  data() {
    return { count: 4 }
  },
  methods: {
    increment() {
      // `this` 指向该组件实例
      this.count++
    }
  }
})

三、Vue的基本指令

Vue 指令(Directives)是 Vue.js 的一项核心功能,它们可以在 HTML 模板中以 v- 开头的特殊属性形式使用,用于将响应式数据绑定到 DOM 元素上或在 DOM 元素上进行一些操作。

Vue 指令是带有前缀 v- 的特殊 HTML 属性,它赋予 HTML 标签额外的功能。

与传统的 JavaScript 方法相比,使用 Vue 创建响应式页面要容易得多,并且需要的代码更少。

以下是几个常用的 Vue 指令:

指令描述
v-bind用于将 Vue 实例的数据绑定到 HTML 元素的属性上。
v-if用于根据表达式的值来条件性地渲染元素或组件。
v-showv-show 是 Vue.js 提供的一种指令,用于根据表达式的值来条件性地显示或隐藏元素。
v-for用于根据数组或对象的属性值来循环渲染元素或组件。
v-on用于在 HTML 元素上绑定事件监听器,使其能够触发 Vue 实例中的方法或函数。
v-model用于在表单控件和 Vue 实例的数据之间创建双向数据绑定。

除了这些常用的指令,Vue 还提供了一些其他的指令,如 v-text、v-html 等,以及自定义指令,让开发者能够更加灵活地操作 DOM 元素。

1、指令的使用示例

1、v-model

使用v-model可以实现数据的双向绑定,而不需要使用JS进行繁杂的获取组件进行更新

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>VueTest</title>
<script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<div id="app" class="demo">
    <input type="text" v-model="message">
    <p>{{ message }}</p>
</div>

<script>
const HelloVueApp = {
  data() {
    return {
      message: 'Hello Vue!!'
    }
  }
}

Vue.createApp(HelloVueApp).mount('#app')
</script>
</body>
</html>

 

因此在对于数据进行修改时,会实时的进行响应和渲染!

 2、v-bind

使用 v-bind 指令将 Vue 实例的数据绑定到 HTML 元素的属性上:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<div id="app" class="demo">
    <img v-bind:src="imageSrc">
</div>

<script>
const HelloVueApp = {
  data() {
    return {
      imageSrc: 'https://static.runoob.com/images/code-icon-script.png'
    }
  }
}

Vue.createApp(HelloVueApp).mount('#app')
</script>
</body>
</html>

即可实现数据的绑定!

3、v-if and v-else

使用 v-if 和 v-else 指令根据表达式的值来条件性地渲染元素或组件:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue</title>
<script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<div id="app" class="demo">
    <p v-if="showMessage">Hello Vue!</p>
    <p v-else>Goodbye Vue!</p>
</div>

<script>
const HelloVueApp = {
  data() {
    return {
      showMessage: true
    }
  }
}

Vue.createApp(HelloVueApp).mount('#app')
</script>
</body>
</html>

4、v-for

使用 v-for 指令根据数组的属性值循环渲染元素或组件:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue</title>
<script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<div id="app" class="demo">
  <ul>
    <li v-for="item in items" :key="item.id">
      {{ item.text }}
    </li>
  </ul>
</div>

<script>
const HelloVueApp = {
  data() {
    return {
      items: [
        { id: 1, text: 'Item 1' },
        { id: 2, text: 'Item 2' },
        { id: 3, text: 'Item 3' }
      ]
    }
  }
}

Vue.createApp(HelloVueApp).mount('#app')
</script>
</body>
</html>

 

5、v-on

使用 v-on 指令在 HTML 元素上绑定事件监听器:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue</title>
<script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
<style>
#app {
  border: dashed black 1px;
  display: inline-block;
  padding-bottom: 10px;
}

#app > button {
  display: block;
  margin: auto;
}

#lightDiv {
  position: relative;
  width: 150px;
  height: 150px;
}

#lightDiv > img {
  position: relative;
  width: 100%;
  height: 100%;
}

#lightDiv > div {
  position: absolute;
  top: 10%;
  left: 10%;
  width: 80%;
  height: 80%;
  border-radius: 50%;
  background-color: yellow;
}
</style>
</head>
<body>
<div id="app">
  <div id="lightDiv">
    <div v-show="lightOn"></div>
    <img src="https://static.runoob.com/images/svg/img_lightBulb.svg">
  </div>
  <button v-on:click=" lightOn =! lightOn ">开/关</button>
</div>

<script>
const app = Vue.createApp({
  data() {
    return {
      lightOn: false
    }
  }
})
app.mount('#app')
</script>

</body>
</html>

 实现简单的开关灯,即切换背景颜色:

6、v-show

用于显示或隐藏组件

 以下是一个使用 v-show 指令的示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<div id="hello-vue" class="demo">
    <button v-on:click="showMessage = !showMessage">显示/隐藏</button>
    <p v-show="showMessage">Hello Vue!</p>
</div>

<script>
const HelloVueApp = {
  data() {
    return {
      showMessage: true
    }
  }
}

Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>
</body>
</html>

 

点击显示和隐藏!

发文不易,恳请大佬们高抬贵手!


点赞:随手点赞是种美德,是大佬们对于本人创作的认可!


评论:往来无白丁,是你我交流的的开始!


收藏:愿君多采撷,是大佬们对在下的赞赏!

 

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

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

相关文章

【服务器数据恢复】raid5故障导致LUN无法访问的数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器中有一组由数块SAS硬盘组建的RAID5阵列&#xff0c;阵列中有1块热备盘&#xff0c;上层部署OA以及Oracle数据库。 服务器故障&#xff1a; 该磁盘阵列中有2块硬盘出现故障先后离线&#xff0c;RAID5阵列瘫痪&#xff0c;上层LUN无法…

使用记事本编写第一个GO程序

开发环境&#xff1a; go1.18.3 记事本 先来看一下要编写的第一个hello,world Go程序 package main import "fmt"func main() {/* this is my first Go program*/fmt.Println("hello,world") } 第一行代码 package main定义了域名&#xff0c;你必须在源文…

设计模式->观察者设计模式和订阅者发布者设计模式的区别

设计模式->观察者设计模式和订阅者发布者设计模式的区别 一、先复习一下观察者设计模式的相关定义,优点,以及缺点1.定义观察者模式的三个典型例子 2.优点3.缺点4.观察者设计模式的主要角色5.代码举例完整代码 二、回答问题:观察者设计模式和订阅者发布者设计模式的区别 一、…

【Java-SpringBoot+Vue+MySql】项目开发综合—经验总结

目录 框架&#xff1a; 编程思维&#xff1a; MVC架构: 前端——组件式开发 开发思路梳理&#xff1a; 后端—— 前端—— 效果图 信息列表&#xff1a; 修改用户​编辑 新增用户 删除用户 数据清空 批量上传 框架&#xff1a; 后端&#xff1a;JAVA-SpringBoot2.6、包管理器M…

13.RocketMQ之消息的存储与发送

1. 消息存储 1.1 消息存储 分布式队列因为有高可靠性的要求&#xff0c;所以数据要进行持久化存储。 消息生成者发送消息Broker收到消息&#xff0c;将消息进行持久化&#xff0c;在存储中新增一条记录返回ACK给生产者Broker消息给对应的消费者&#xff0c;然后等待消费者返回A…

Keras-4-深度学习用于计算机视觉-猫狗数据集训练卷积网络

0. 说明&#xff1a; 本篇学习记录主要包括&#xff1a;《Python深度学习》的第5章&#xff08;深度学习用于计算机视觉&#xff09;的第2节&#xff08;在小型数据集上从头开始训练一个卷积神经网络&#xff09;内容。 相关知识点&#xff1a; 从头训练卷积网络&#xff1b…

AI 绘画用 Stable Diffusion 图生图局部重绘功能给美女换装(这是我能看的嘛)

昨天带大家一起装好了 Stable Diffusion 的环境&#xff0c;今天就来带大家一起体验一下 Stable Diffusion 的局部重绘功能。 没装好环境的可以看上一篇&#xff1a;AI 绘画基于 Kaggle 10 分钟搭建 Stable Diffusion&#xff08;保姆级教程&#xff09; Stable Diffusion 的…

可重入,可打断,公平锁,条件变量原理解读

目录 可重入原理 可打断原理 不可打断模式 可打断模式 公平锁实现原理 条件变量实现原理 await 流程 signal 流程 可重入原理 什么是可重入&#xff1a;当线程请求一个由其它线程持有的对象锁时&#xff0c;该线程会阻塞&#xff0c;而当线程请求由自己持有的对象锁…

阿里刚换帅,京东忙换将:新时代号角吹响

6月26日早间&#xff0c;京东物流在港交所发布公告称&#xff0c;京东物流CEO余睿因个人身体原因辞任执行董事、首席执行官及授权代表&#xff0c;原京东产发CEO胡伟将担任京东物流CEO。 同时&#xff0c;据《科创板日报》报道&#xff0c;京东集团将新成立创新零售部&#xf…

【论文笔记】Fast Segment Anything

我说个数&#xff1a;一个月5篇基于Fast Segment Anything的改进的论文就会出现哈哈哈哈。 1.介绍 1.1 挑战 SAM架构的主要部分Transformer&#xff08;ViT&#xff09;模型相关的大量计算资源需求&#xff0c;这给其实际部署带来了障碍 1.2 任务解耦 将分段任意任务解耦为…

正确认识:1189194-65-7,DOTA-CH2-Alkynyl (TFA salt),试剂的结构式和CAS

文章关键词&#xff1a;双功能螯合剂&#xff0c;大环配体&#xff0c;标记螯合剂修饰 【产品描述】 DOTA-CH2-Alkynyl (TFA salt)中TFA是一种强酸。它可以质子化任何氨基。盐酸也是这样。在纯化多肽过程中的反相HPLC&#xff0c;有一种技术是阴离子交换。将多肽加载在柱子上&a…

MySql基础教程(三):创建数据表、数据增删改查、删除数据表

MySql基础教程(三)&#xff1a;创建数据表、数据增删改查、删除数据表 1、创建数据表 创建MySQL数据表需要以下信息&#xff1a; 表名表字段名定义每个表字段 1.1 语法 下面是创建MySQL数据表的SQL通用语法&#xff1a; CREATE TABLE table_name (column_name column_typ…

无线蓝牙通信有关(NRF2401模块)的功耗,通道频率等

参考&#xff1a; ISM频段 Industrial Scientific Medical,ISM&#xff08;工业、科学、医疗&#xff09;频段为国际电信联盟&#xff08;ITU&#xff09;《无线电规则》定义的指定无线电频段。 Frequency-Shift Keying 数字调制技术&#xff08;FSK调制&#xff09; 将需要…

又是一年毕业季,准备好踏入职场了吗?

文章目录 一、大学时光二、给毕业生的一些建议三、职场中的经验分享四、程序员未来职业规划 一、大学时光 作为一名程序员&#xff0c;大学时光是我职业生涯中最重要的时期之一。这四年的大学&#xff0c;我不仅学到了计算机科学的理论知识&#xff0c;还积累了丰富的编程经验…

tqdm:python的简单可视化进度

tqdm&#xff1a;python的简单可视化进度 说明 ​ 本篇文章的主要目的是快速上手使用&#xff0c;而不是解析源码。 目录结构 文章目录 tqdm&#xff1a;python的简单可视化进度1. 应用场景2. 库安装3. 方法速览4. 案例5. 总结 1. 应用场景 ​ 进度条应用的场景很多&#xff0…

YOLOv8独家原创改进:独家首发最新原创XIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能、收敛速度和鲁棒性

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv8独家原创改进:独家首发最新原创XIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能、收敛速度和鲁棒性。 💡对自己…

[RocketMQ] Producer发送消息的总体流程 (七)

单向发送: 把消息发向Broker服务器, 不管Broker是否接收, 只管发, 不管结果。同步发送: 把消息发向Broker服务器, 如果Broker成功接收, 可以得到Broker的响应。异步发送: 把消息发向Broker服务器, 如果Broker成功接收, 可以得到Broker的响应。异步所以发送消息后, 不用等待, 等…

css基础知识十:介绍一下CSS中的Grid网格布局?

一、是什么 Grid 布局即网格布局&#xff0c;是一个二维的布局方式&#xff0c;由纵横相交的两组网格线形成的框架性布局结构&#xff0c;能够同时处理行与列 擅长将一个页面划分为几个主要区域&#xff0c;以及定义这些区域的大小、位置、层次等关系 这与之前讲到的flex一维…

操作系统—内存管理

单片机是没有操作系统的&#xff0c;每次写完代码都是通过一些工具将程序直接烧录进去&#xff0c;这样程序才能跑起来。单片机的CPU是直接操作内存的物理地址。在这种情况下&#xff0c;要想在内存中同时运行两个程序是不可能的&#xff0c;程序会崩溃。那么操作系统为了解决这…

LLM相关的一些调研

Prompt Engine 可以参考该项目&#xff0c;该项目提供关于提示词书写的规则。由openai以及吴恩达完成。 https://github.com/datawhalechina/prompt-engineering-for-developers由于目前chatgpt 无法直接在国内访问&#xff0c;推荐在claude on slack上尝试。关于claude api h…