4.Vue

news2024/12/24 9:13:21

1.什么是Vue

  • Vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。

  • 基于**MVVM(Model-View-ViewModel)思想,实现数据双向绑定**,将编程的关注点放在数据上。

  • 官网:https://v2.cn.vuejs.org/

  • 框架:是一个半成品软件,是一个可重用的,通用的,软件基础代码模型。基于框架进行开发,更加快捷,更加高效。

Vue快速入门

  • 新建HTML页面,引入Vue.js文件
<script src="js/vue.js"></script>
  • 在JS代码区域,创建Vue核心对象,定义数据模型
<script>
    new Vue({
        el: "#app", //Vue接管区域
        data: {
            message: "Hello Vue"
        }
    })
</script>
  • 编写视图
<div id="app">
        <input type="text" v-model="message">
        {{message}}
  • 完整代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue-快速入门</title>
    <!-- 第一步:引入vue -->
    <script src="js/vue.js"></script>
</head>
<body>
    <!-- 第三步:编写视图层的展示 -->
    <div id="app">
        <input type="text" v-model="message">
        {{message}}
    </div>
</body>

<script>
    //第二步:定义vue对象
    new Vue({
        el: "#app", //Vue接管区域
        data: {
            message: "Hello Vue"
        }
    })
</script>
</html>
  • 插值表达式
    • 形式:{{表达式}}
    • 内容可以是:
      • 变量
      • 三元运算符
      • 函数调用
      • 算术运算

Vue常用指令

  • 指令:HTML标签上带有v-前缀的特殊属性,不同指令具有不同含义

  • 常用指令:

    • v-bind:为HTML标签绑定属性值。如设置hrefcss样式等
    • v-model:在表单元素上创建双向数据绑定
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Vue-指令-v-bind,v-model</title>
        <script src="js/vue.js" ></script>
    </head>
    <body>
        <div id="app">
            <a v-bind:href="url">链接1</a>
            <!-- 简化的书写形式 -->
            <a :href="url">链接2</a>
    
            <input type="text" v-model="url">
        </div>
    </body>
    
    <script>
        new Vue({
            el: "#app",
            data:{
                url: "https:www.baidu.com"
            }
        })
    </script>
    </html>
    
    • v-on:为HTML标签绑定事件
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Vue-指令-v-on</title>
        <script src="js/vue.js" ></script>
    </head>
    <body>
        <div id="app">
            <input type="button" v-on:click="handle()" value="点我一下">
            <!-- 简化写法 -->
            <input type="button" @click="handle()" value="点我一下">
    
        </div>
    </body>
    
    <script>
        new Vue({
            el: "#app",
            data:{
                
            },
            methods: {
                handle: function(){
                    alert("我被点了一下");
                }
            }
        })
    </script>
    </html>
    
    • v-ifv-else-ifv-else:条件性的渲染某元素,判定为true时渲染,否则不渲染
    • v-show:根据条件展示某元素,区别在于切换的时display属性的值
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Vue-指令-v-on</title>
        <script src="js/vue.js"></script>
    </head>
    
    <body>
        <div id="app">
            年龄<input type="number" v-model="age">经判定,为:
            <span v-if="age<=35">年轻人(35岁及以下)</span>
            <span v-else-if="35<age&&age<=60">中年人(35-60)</span>
            <span v-else>老年人(60岁及以上)</span>
    
            <br><br>
    
            年龄<input type="number" v-model="age">经判定,为:
            <span v-show="age<=35">年轻人(35岁及以下)</span>
            <span v-show="35<age&&age<=60">中年人(35-60)</span>
            <span v-show="age>60">老年人(60岁及以上)(35-60)</span>
    
    
        </div>
    </body>
    
    <script>
        new Vue({
            el: "#app",
            data: {
                age: 20
            },
            methods: {
    
            }
        })
    </script>
    
    </html>
    
    • v-for:列表渲染,遍历容器的元素或者对象的属性
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Vue-指令-v-for</title>
        <script src="js/vue.js"></script>
    </head>
    
    <body>
        <div id="app">
            <!-- 第一种遍历方式,不带索引 -->
            <div v-for="addre in addres">{{addre}}</div>
    
            <hr>
            <!-- 第二种遍历方式,带索引,从0开始 -->
            <div v-for="(addre, index) in addres">{{index + 1}} : {{addre}}</div>
        </div>
    </body>
    
    <script>
        new Vue({
            el: "#app", //Vue接管区域
            data: {
                addres: ["北京", "上海", "西安", "成都", "深圳"]
            },
            methods: {
    
            }
        })
    </script>
    
    </html>
    
  • 注意事项:通过v-bind或者v-model绑定的变量,必须在数据模型中声明

Vue生命周期

  • 生命周期:指一个对象从创建到销毁的整个过程
  • 生命周期的八个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法(钩子)
状态阶段周期
beforeCreat创建前
created创建后
beforeMount挂载前
mounted挂载完成
beforeUpdate更新前
updated更新后
beforeDestroy销毁前
destroyed销毁后
  • 下图是Vue官网提供的从创建Vue到效果 Vue 对象的整个过程及各个阶段对应的钩子函数:

在这里插入图片描述

  • mounted:挂载完成,Vue初始化成功,HTML页面渲染成功。(发送请求到服务端,加载数据)

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

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

相关文章

Linux 5种网络IO模型

Linux IO模型 网络IO的本质是socket的读取&#xff0c;socket在linux系统被抽象为流&#xff0c;IO可以理解为对流的操作。刚才说了&#xff0c;对于一次IO访问&#xff08;以read举例&#xff09;&#xff0c;数据会先被拷贝到操作系统内核的缓冲区中&#xff0c;然后才会从操…

DDD 架构分层,MQ消息要放到那一层处理?

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; 本文的宗旨在于通过简单干净实践的方式教会读者&#xff0c;使用 Docker 配置 RocketMQ 并在基于 DDD 分层结构的 SpringBoot 工…

Nginx反向代理技巧

跨域 作为一个前端开发者来说不可避免的问题就是跨域&#xff0c;那什么是跨域呢&#xff1f; 跨域&#xff1a;指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的&#xff0c;是浏览器对javascript施加的安全限制。浏览器的同源策略是指协议&#xff0c;域名…

三维模型OSGB格式轻量化纹理压缩关键技术分析

三维模型OSGB格式轻量化纹理压缩关键技术分析 在三维模型应用中&#xff0c;纹理是一个十分重要的因素&#xff0c;可以使得模型更加真实、精细。随着移动设备和网络传输速度的限制&#xff0c;纹理数据也需要进行轻量化处理&#xff0c;而OSGB格式纹理压缩是一种常见且有效的技…

Android Studio使用OkHttp网络通信出现okio问题

最近使用Android Studio做个App&#xff0c;一开始集成的httpclient&#xff0c;但是Android对其支持性不是很好了&#xff0c;所以换成了okhttp。 集成okhttp 1、我在本地仓库&#xff0c;拷贝出来&#xff0c;放到系统的libs目录下。 2、选定okhttp-4.1.0.jar&#xff0c;右…

电视机看板大屏适配问题——js基础积累

直接上效果图&#xff1a; 下面直接写代码&#xff1a; 1.html部分的代码 <body><div class"container"><!-- 数据展示区域 --><div class"box"><div class"top">top</div><div class"bottom&…

Linux知识点 -- Linux多线程(一)

Linux知识点 – Linux多线程&#xff08;一&#xff09; 文章目录 Linux知识点 -- Linux多线程&#xff08;一&#xff09;一、理解线程1.从资源角度理解线程2.执行流3.多线程编程4.线程的资源5.线程切换的成本更低6.线程的优缺点7.线程异常 二、线程控制1.clone函数2.线程异常…

深度学习入门-2-开源开放平台

一、深度学习框架 1.简介 深度学习在很多机器学习任务中都有着非常出色的表现&#xff0c;在图像识别、语音识别、自然语言处理、机器人、网络广告投放、医学自动诊断和金融等领域都有着广泛应用。面对繁多的应用场景&#xff0c;深度学习框架有助于建模者聚焦业务场景和模型…

AutoHotkey:定时删除目录下指定分钟以前的文件,带UI界面

删除指定目录下&#xff0c;所有在某个指定分钟以前的文件&#xff0c;可以用来清理经常生成很多文件的目录&#xff0c;但又需要保留最新的一部分文件 支持拖放目录到界面 应用场景比如&#xff1a;游戏定时存档&#xff0c;日志目录、监控文件目录等 关于这个删除后备份&am…

Spring Cloud Feign MultipartFile文件上传踩坑之路(包含前端文件上传请求、后端文件保存到aliyun-oss文件服务器)

Spring Cloud Feign MultipartFile文件上传踩坑之路总结 一、前端文件上传 文件上传组件用的是ant-design的a-upload组件&#xff0c;我的界面如下所示&#xff1a; 文件上传请求API: FileUtils.js import axios from "axios"const uploadApi ({file, URL, onUp…

NLP序列标注问题,样本不均衡怎么解决?

【学而不思则罔&#xff0c;思而不学则殆】 1.问题 NLP序列标注问题&#xff0c;样本不均衡怎么解决&#xff1f; 2.解释 以命名实体识别&#xff08;NER&#xff09;为例&#xff0c;这个样本不均衡有两种解释&#xff1a; &#xff08;1&#xff09;实体间类别数量不均衡…

从外部访问K8s中Pod的五种方式

hostNetwork、 hostPort、 NodePort、 LoadBalancer、 Ingress 暴露Pod与Service一样&#xff0c;因为Pod就是Service的backend 1、hostNetwork&#xff1a;true 这是一种直接定义 Pod 网络的方式。 如果在 Pod 中使用 hostNetwork:true 配置&#xff0c; pod 中运行的应用程序…

[计算机入门] 设置屏幕分辨率

3.1 设置屏幕分辨率 3.1.1 屏幕分辨率介绍 屏幕分辨率&#xff0c;是指屏幕上显示的像素个数&#xff0c;它决定了显示图像的清晰度和精细度。屏幕分辨率通常以水平像素数和垂直像素数来衡量&#xff0c;例如1600 x 1200。 在相同大小的屏幕上&#xff0c;当屏幕分辨率较低时…

vue中的路由缓存和解决方案

路由缓存的原因 解决方法 推荐方案二&#xff0c;使用钩子函数beforeRouteUpdate&#xff0c;每次路由更新前执行

[自学记录06|*百人计划]Gamma矫正与线性工作流

一、前言 Gamma矫正其实也属于我前面落下的一块内容&#xff0c;打算把它补上&#xff0c;其它的没补是因为我之前写的GAMES101笔记里已经涵盖了&#xff0c;而Gamma矫正在101里面确实没提到&#xff0c;于是打算把它补上&#xff0c;这块内容并不难&#xff0c;但是想通透的理…

什么是CSS预处理器?请列举几个常见的CSS预处理器。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS预处理器是什么&#xff1f;⭐ 常见的CSS预处理器⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是…

FPGA_学习_14_第一个自写模块的感悟和ila在线调试教程与技巧(寻找APD的击穿偏压)

前一篇博客我们提到了&#xff0c;如果要使用算法找到Vbr&#xff0c;通过寻找APD采集信号的噪声方差的剧变点去寻找Vbr是一个不错的方式。此功能的第一步是在FPGA中实现方差的计算&#xff0c;这个我们已经在上一篇博客中实现了。 继上一篇博客之后&#xff0c;感觉过了很久了…

这场大学生竞赛中,上百支队伍与合合信息用AI共克难题

目录 0 校企联合共克难题1 北京林业大学&#xff1a;文档格式转换2 浙江中医药大学&#xff1a;个性化题库3 中南林业科技大学&#xff1a;交互场景挖掘4 重庆邮电大学&#xff1a;大模型赋能智能文档5 总结 0 校企联合共克难题 近日&#xff0c;中国大学生服务外包创新创业大…

如何使用CSS实现一个响应式视频播放器?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现响应式视频播放器⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣…

avue多选列表根据后端返回的某个值去判断是否选中;avue-curd多选回显

效果如上&#xff1a; getSiteList().then(res > {//列表数据this.siteData res.data.datathis.$nextTick(()>{this.siteData.forEach(item>{//业务条件if(item.configid&&item.configid!0&&item.configid>0){//符合条件时调用选中的方法this.$…