前端框架Vue

news2024/12/23 16:30:46

Vue

介绍

官方网站:https://cn.vuejs.org/

  • Vue.js是一种用于构建用户界面的开源JavaScript框架。
  • 它是一种轻量级的框架,易于学习和使用。
  • 它基于标准HTML,CSS和JavaScript构建,并提供了一套生声明式的,组件时的编程模型,帮助开发人员高效的开发用户界面。无论简单还是复杂的界面,Vue都可以胜任。
  • Vue.js采用了组件化的开发方式,使得开发者可以将一个页面拆分为多个可复用的组件,从而提高代码的可维护性和复用性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-377mq144-1688373083288)(E:\VUE笔记\VUE.assets\image-20230630110004514.png)]

特点

  • 响应式:

    • Vue.js使用了双向数据绑定的机制,当数据发生变化时,页面会自动更新,无需手动操作DOM。
  • 组件化:

    • Vue.js将页面拆分为多个组件,每个组件都有自己的逻辑和样式,可以独立开发和维护。
  • 轻量级:

    • Vue.js的体积较小,加载速度快,性能优秀。
  • 简单易用:

    • Vue.js提供了简洁的API和清晰的文档,使得开发者可以快速上手并进行开发。
  • 生态丰富:

    • Vue.js拥有庞大的社区和生态系统,有大量的插件和工具可供选择,方便开发者进行扩展和集成。

渐进式框架

Vue 是一个框架,也是一个生态。其功能覆盖了大部分前端开发常见的需求。但 Web 世界是十分多样化的,不同的开发者在 Web 上构建的东西可能在形式和规模上会有很大的不同。考虑到这一点,Vue 的设计非常注重灵活性和“可以被逐步集成”这个特点。根据你的需求场景,你可以用不同的方式使用 Vue:

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

无论再怎么灵活,Vue 的核心知识在所有这些用例中都是通用的。即使你现在只是一个初学者,随着你的不断成长,到未来有能力实现更复杂的项目时,这一路上获得的知识依然会适用。如果你已经是一个老手,你可以根据实际场景来选择使用 Vue 的最佳方式,在各种场景下都可以保持同样的开发效率。这就是为什么我们将 Vue 称为“渐进式框架”:它是一个可以与你共同成长、适应你不同需求的框架。

搭建Vue开发环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-02l5H1fK-1688373083289)(E:\VUE笔记\VUE.assets\image-20230703105459022.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GrMYjRL4-1688373083290)(E:\VUE笔记\VUE.assets\image-20230703105517079.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ag5ZD8C8-1688373083290)(E:\VUE笔记\VUE.assets\image-20230703105537388.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vdHYex5I-1688373083290)(E:\VUE笔记\VUE.assets\image-20230703105653998.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HeKn0Uwx-1688373083291)(E:\VUE笔记\VUE.assets\image-20230703105752548.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dTIWGP9v-1688373083291)(E:\VUE笔记\VUE.assets\image-20230703111030706.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vGdppguX-1688373083292)(E:\VUE笔记\VUE.assets\image-20230703110644806.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jdiaToQE-1688373083292)(E:\VUE笔记\VUE.assets\image-20230703110901721.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NDQXQeqL-1688373083293)(E:\VUE笔记\VUE.assets\image-20230703111014834.png)]

第一个程序

{{ }}是用来进行数据绑定的语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="./js/vue.js"></script>

</head>
<body>
<div id="app">
    <!-- 在页面中显示message的值 -->
    
    <h1>我叫:{{ name }}</h1>
    <h1>年龄:{{ age }}</h1>
</div>

<script>
    // 创建一个Vue实列
    var app = new Vue({
        // 将Vue示例挂载到id为app的元素上
        el: '#app',
        // 数据对象
        data: {
            // 定义一个message的属性,并赋值为‘Hello World;
            name: '张三',
            age : 18
        }
    })
</script>
</body>
</html>

指令模式

v-bind

用于绑定数据,将Vue实例中的数据绑定到HTML元素的属性上,可以简写为冒号(😃。

例如:v-bind:title=“message”,将Vue实例中的message属性的值绑定到元素的title属性上。

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<div id="app">
	<h1>指令语法:</h1>
    	<a v-bind:href="url">跳转到CSDN</a>
</div>
<script>
    // 创建一个Vue实列
    var app = new Vue({
        // 将Vue示例挂载到id为app的元素上
        el: '#app',
        data: {
            url : 'https://www.csdn.net'
        }
    })
</script>
</body>
</html>

v-model

用于实现双向数据绑定,将表单元素的值与Vue实例中的数据进行双向绑定。

例如:v-model=“message”,将表单元素的值与Vue实例中的message属性进行双向绑定。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-model</title>
    <script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <h1>v-model指令模式</h1>

<!--    输入框,使用v-model指令绑定数据-->
    <input type="text" v-model="message" value="请输入">
    <p>{{ message }}</p>

    <input type="checkbox" v-model="isChecked" >
    <label>{{ isChecked ? '检查' : '不检查' }}</label>

    <select v-model="selectedOption">
        <option value=""></option>
        <option value=""></option>
        <option value="rap">rap</option>
    </select>
    <p>选择的选项是: {{ selectedOption }}</p>
</div>

<script>
    new Vue({
        el: '#app',
        data: {
            message: '',
            isChecked: false,
            selectedOption: ''
        }
    });
</script>
</body>
</html>

v-if / v-else

用于条件渲染,根据表达式的值来决定是否渲染某个元素。

例如:v-if=“isShow”,根据isShow属性的值来决定是否渲染该元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-if / v-else指令</title>
    <script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <h1 v-if="showMessage">Hello, Vue!</h1>
    <h1 v-else>Goodbye, Vue!</h1>
    <button @click="toggleMessage">切换信息</button>
</div>

<script>
    // 创建一个Vue实例
    new Vue({
        // 将Vue实例挂载到id为app的元素上
        el: '#app',
        //数据对象
        data: {
            // 控制是否查看消息的变化
            showMessage: true
        },
        // 方法对象啊
        methods: {
            // 切换消息显示状态的方法
            toggleMessage() {
                //将showMessage的值取反
                this.showMessage = !this.showMessage;
            }
        }
    });
</script>
</body>
</html>

v-for

用于循环渲染,根据数组或对象的内容来生成多个相同的元素。

例如:v-for=“item in items”,根据items数组的内容来生成多个元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-for指令</title>
    <script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <h1>学生列表</h1>
    <ul>
        <!-- 遍历students数组 -->
        <!-- 遍历数组为students,将每一个元素赋值给变量student -->
        <li v-for="student in students" :key="student.id">
            {{ student.name }} - {{ student.age }}岁
        </li>
    </ul>
</div>
<script>
    new Vue({
        el: '#app',
        data: {
            students: [
                { id: 1, name: '张三', age: 18 },
                { id: 2, name: '李四', age: 20 },
                { id: 3, name: '王五', age: 22 },
                { id: 4, name: '赵六', age: 19 }
            ]
        }
    })
</script>
</body>
</html>

v-on

用于绑定事件,将Vue实例中的方法绑定到HTML元素的事件上,可以简写为@。

例如:v-on:click=“handleClick”,将Vue实例中的handleClick方法绑定到元素的click事件上。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-on指令</title>
    <script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <!-- 显示message变量的值 -->
    <h1>{{ message }}</h1>
    <!-- 点击按钮时调用changeMessage方法 -->
    <button v-on:click="changeMessage">改变信息</button>
</div>


<script>
    new Vue({
        // 将Vue实例挂载到id为app的元素上
        el: '#app',
        data: {
            // 定义一个名为message的变量,初始值为'Hello, Vue!'
            message: 'Hello, Vue!'
        },
        methods: {
            // 定义一个名为changeMessage的方法
            changeMessage: function() {
                // 将message的值改为'New Message!'
                this.message = 'New Message!';
            }
        }
    });
</script>
</body>
</html>

v-show

用于条件显示,根据表达式的值来决定是否显示某个元素,与v-if不同的是,v-show只是通过CSS的display属性来控制元素的显示与隐藏。

例如:v-show=“isShow”,根据isShow属性的值来决定是否显示该元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-show指令</title>
    <script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <!-- 点击按钮时调用toggleShow方法 -->
    <button @click="toggleShow">Toggle Show</button>
    <!-- 根据show的值来决定是否显示该段落 -->
    <p v-show="show">点击按钮时显示这一段</p>
</div>


<script>
    new Vue({
        // 将Vue实例挂载到id为app的元素上
        el: '#app',
        data: {
            // 初始化show的值为false,即不显示该段落
            show: false
        },
        methods: {
            // 定义toggleShow方法
            toggleShow() {
                // 切换show的值,如果为true则变为false,如果为false则变为true
                this.show = !this.show;
            }
        }
    });
</script>
</body>
</html>

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

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

相关文章

【深入浅出 Spring Security(十三)】使用 JWT 进行前后端分离认证(附源码)

使用 JWT 进行前后端分离认证 一、JWT 的简单介绍二、使用 JWT 进行安全认证后端结合SpringSecurity实现前端Vue3结合Pinia、Axios实现测试结果 一、JWT 的简单介绍 JWT 全称 Java web Token&#xff0c;在此所讲述的是 JWT 用于身份认证&#xff0c;用服务器端生成的JWT去替代…

spring--Ioc控制反转/DI依赖注入

IOC控制反转-解耦 1.概念&#xff1a;在使用对象的时候&#xff0c;由主动的new转换为外部提供对象&#xff0c;将对象创建的控制权交给外部&#xff0c;即控制反转 2.spring提供了一个容器&#xff0c;称为IOC容器&#xff0c;用来从当ioc中的外部 3.被管理或者被创建的对象在…

ChatGPT实战:如何规划自己的职业生涯?

ChatGPT的出现&#xff0c;不仅改变了人们对人工智能技术的认识&#xff0c;也对经济社会发展产生了深远的影响。那么&#xff0c;在ChatGPT时代&#xff0c;人们应该如何规划自己的职业呢&#xff1f; 职业规划是一个有意义且重要的过程&#xff0c;它可以帮助你在职业生涯中…

什么是BI可视化?企业管理决策为什么要用BI系统?

在当今的商业环境中&#xff0c;数据已经成为企业决策制定的重要基础。然而&#xff0c;面对海量的数据&#xff0c;如何有效地分析和利用这些数据&#xff0c;成为了企业管理者面临的一大挑战。BI(Business Intelligence)系统应运而生&#xff0c;它可以帮助企业管理者从复杂的…

基于Java企业人事管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

如何用好强大的 TDengine 集群 ? 先了解 RAFT 在 3.0 中的应用

大家都知道&#xff1a;由于单机数据库在数据规模、并发访问量等方面存在瓶颈&#xff0c;无法满足大规模应用的需求。因此才有了把数据切割分片&#xff0c;分布存储分布处理在多个节点上的数据库&#xff0c;也就是分布式数据库的由来。 而为了实现数据库的高可用&#xff0…

新装Ubuntu虚拟机环境--基本配置流程

新装Ubuntu虚拟机环境--基本配置流程 安装vmware tools修改源 安装vmware tools 点击菜单栏–>虚拟机–>安装VMwaretools桌面上有个图标&#xff0c;点进去 打开这个压缩包–>Extract到桌面&#xff08;or别的文件夹都可以&#xff0c;如果提示空间不足就换其它文件夹…

手把手写一个LED驱动(1)

目录 1.开启驱动开发之路 1.1、驱动开发的准备工作 1.2、驱动开发的步骤 1.3、实践 2.最简单的模块源码分析 2.1、常用的模块操作命令 2.2、模块的安装 2.3、模块的版本信息vermagic 2.4、模块卸载 2.5、模块中常用宏(MODULE_xxx这种宏的作用是用来添加模块描述信息) …

2023年仪器仪表行业研究报告

第一章 行业概况 仪器仪表行业是指专门从事研究、设计、制造、销售和服务于科学研究、生产和生活中所需的各种仪器、仪表和自动化设备的行业。这些仪器和仪表可以用于测量、指示、记录、调节和控制物理、化学和生物过程中的各种参数。这个行业涵盖了广泛的设备和系统&#xff…

今日分享:Midjourney巧妙地用参考图/垫图来绘画图

大家都知道AI绘画工具每次生成的效果都是随机的&#xff0c;但是现在很多AI绘图工具都提供了利用参考图/垫图的方式出图&#xff0c;这样就可以让让AI画作生成自己想要的布局、场景、色彩等等。 国内的AI绘图工具一般都好操作&#xff0c;国外主流的Midjourney也可以添加参考图…

利用for循环和innerHTML在div中再填入多个div

目录 棋盘给每个小格子加上不同的id加上不同的参数传入 我们设置小格子的点击触发事件 循环填充元素 棋盘 先做棋盘&#xff0c;点击出现 <!DOCTYPE HTML> <html><head><meta charset"utf-8"><style>.sty1{background-color:#aaa;he…

旅游网站制作搭建,为旅行业务带来新机遇

旅游业在全球范围内一直都是蓬勃发展的行业之一。随着互联网的普及以及人们对旅行需求的增加&#xff0c;拥有一个精美而功能强大的旅游网站已经成为了旅行从业者的必备条件。本文旨在简单介绍旅游网站是什么&#xff0c;旅游网站的好处&#xff0c;并提供一些快速制作搭建旅游…

10亿上下文!微软新作,引入LongNet将Transformers上下文长度扩充到10亿

夕小瑶科技说 原创 作者 | python, ZenMogre Transformer处理长序列时较为吃力。因为global attention的存在&#xff0c;模型的时间复杂度是序列长度的2次方级。为了建模更长的上下文&#xff0c;人们也提出了各种稀疏注意力机制。而这次&#xff0c;微软卷到家了&#xff0…

word免费转为pdf怎么转,分享这几个方法给大家!

将Word文档转换为PDF格式是一种常见的需求&#xff0c;因为PDF文件具有广泛的兼容性和安全性。本文将介绍三种免费转换Word为PDF的方法&#xff0c;包括记灵在线工具、使用Word自带功能以及使用Smallpdf。这些方法简单易行&#xff0c;帮助您轻松完成转换&#xff0c;方便与他人…

【尚医通】vue3+ts前端项目开发笔记——项目分析

尚医通开发笔记 一、项目分析 项目在线地址&#xff1a;http://syt.atguigu.cn测试帐号&#xff1a;17720125002 首页 home header 全局组件布局 左&#xff1a;logo 、title中&#xff1a;初始隐藏 搜索框 公共组件显示条件&#xff1a;在页面滚动到页面内搜索框的位置显示…

Go语言中的运算符

Golang 内置的运算符 算术运算符 关系运算符 逻辑运算符 位运算符&#xff08;不常用&#xff09; 赋值运算符 算数运算符 运算符描述相加-相减*相乘/相除%求余 a : 10b : 9fmt.Printf("ab的值为%v\na-b的值为%v\na*b的值为%v\n",ab,a-b,a*b) 除法注意&#xff1a;…

uniapp:粘性布局(吸顶:u-sticky)生效的注意事项

使用场景&#xff1a;要求首次渲染时不需要固定在页面顶部&#xff08;正常布局&#xff09;&#xff0c;当随着页面的滚动&#xff0c;需要将起固定在页面顶部&#xff0c;会使用到可能的有&#xff1a;tab、搜索框、导航、标题、头图…工具&#xff1a;用了uview2的组件<u…

手撕spring04源码(A依赖B)

概述 本章节优化上一章节通过构造方法实例化对象属性填充问题的痛点&#xff0c;并解决A bean依赖B bean的问题 整体设计 知识点补充 spring生命周期 在Spring中&#xff0c;Bean的生命周期包括实例化、初始化和销毁三个阶段。下面是对每个阶段的解释&#xff1a; 实例化…

河南企业级泛域名SSL证书

电脑的普及让网络可以快速发展&#xff0c;紧随网络的发展各个CA认证机构推出了泛域名SSL证书、多域名SSL证书等可以用一张SSL证书保护多个域名网站的SSL数字证书。泛域名SSL证书也叫通配符SSL证书&#xff0c;可以用一张SSL证书保护主域名以及主域名下所有的子域名网站&#x…

NR PDCP(三) data transfer

这篇看下PDCP的data transfer过程&#xff0c;如NR RLC(三) TM and UM mode所述&#xff0c;在UL grant充足的情况下&#xff0c;UM RLC 一直在传输完整的RLC SDU&#xff0c;通过log只能知道UE有在收发data&#xff0c;并不能像LTE似的通过SN去判断UE DL data是否有序接收以及…