VUE基本使用详解

news2024/10/5 23:28:12

目录

 

一、VUE框架原理

1. 了解VUE框架

2. VUE框架原理

3. MVC设计模式

4. MVVM设计模式

二、引入VUE框架

1. 本地引入

2. 网络引入

三、安装Vue插件


一、VUE框架原理

1. 了解VUE框架

        vue 框架 是基于MVVM设计模式的前端框架,其中的Vue对象是MVVM设计模式中的VM视图模型。

2. VUE框架原理

        Vue对象将页面中 要改变的元素 和 data中变量 进行绑定,绑定后它会一直监听data中变量值的改变,当值发生改变时,会自动找到与其绑定的元素并且让元素跟着发生改变,改变元素的过程不需要人工干预,提高了开发效率,而且这个过程不需要像 JavaScript 那样频繁DOM操作去改变页面结构,只是监听一片区域,提高了执行效率。

3. MVC设计模式

把一个业务实现分成三部分:

Model:模型,数据模型 是服务器获取到数据的部分代码

View:视图,页面部分代码

Controller:控制器,把数据模型中的数据,通过实现 展示到页面中

        有一个缺点,需要频繁DOM操作,对文档对象模型,频繁全部扫描,如果页面内容多,扫描效率低

4. MVVM设计模式

Model:模型,数据模型 是服务器获取到数据的部分代码

View:视图,页面部分代码

VM:视图模型,它会将页面可能发生改变的元素和变量进行绑定,当变量改变时 元素的值也会改变,不需要频繁扫描,提高了效率和用户体验。

二、引入VUE框架

1. 本地引入

把框架文件下载到本地 通过 JS外部引入中用本地连接 导入实现。

<script src="js/vue.min.js"></script>
 
 

 

2. 网络引入

从服务器直接引入项目,通过 JS外部引入中用网络路径 导入实现

<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
 
 

三、安装Vue插件

File -> Settings -> Plugins 搜索Vue ,安装完之后重启idea

  1. 文本相关
    {{变量}}:插值,定义在标签里,让此处文本内容和变量进行绑定

v-text=“变量” :定义在标签中,让元素的文本内容和变量进行绑定

v-html=“变量”:定义在标签中,让元素的标签内容和变量进行绑定

<body>
<div>
  <!--{{变量}}:插值,让此处显示的文本和变量进行绑定-->
  {{info}}<b>{{info}}</b>
  <h1>{{info}}</h1>
  <!--v-text 让元素的文本内容和变量进行绑定,必须依赖某个标签-->
  <p v-text="info"></p>
  <!--v-html让元素的标签内容和变量进行绑定-->
  <p v-html="info"></p>
</div>
<script src="vue.min.js"></script>
<script>
  new Vue({
    el:"div",
    data:{
      info:"文本<b>加粗</b>"
    }
  })
</script>
</body>
  1. 属性绑定
    让元素 属性的值 和 变量进行 单向绑定,当属性值发生变化 变量也发生改变

结构:

v-bind:属性名=“变量”;

或 :属性名=“变量”;

<body>
<div>
    <!--:属性名=变量 让元素的属性和变量进行绑定-->
    <input type="text" :value="info">
    <input type="text" v-bind:value="info">
    <a :href="url">超链接</a>
    <img :src="imageName" alt="">
</div>
<!--引入网络版的Vue框架 Vue插件才会正常工作-->
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
    new Vue({
        el: "div",
        data: {
            info: "属性绑定",
            url:"http://www.baidu.com",
            imageName:"head.jpg"
        }
    })
</script>
</body>
  1. 双向绑定
    定义在标签中,让控件的value值和变量进行双向绑定,变量影响页面 同时页面的改动也会影响变

结构:v-model=“变量”

<body>
<div>
    <!--v-model="变量"让控件的value值和变量进行双向绑定,变量影响页面 同时页面的改动也会影响变量-->
    <input type="text" v-model="info">
    {{info}}
    <h1>注册表单</h1>
    <form action="">
        用户名:<input type="text" v-model="user.username"><br>
        密码:<input type="password" v-model="user.password"><br>
    </form>
</div>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
    let v = new Vue({
        el: "div",
        data: {
            info: "双向绑定",
            user:{
                username: "",
                password: ""
            }
 
        }
    })
</script>
</body>
  1. 事件绑定
    绑定元素的事件,当条件满足触发时,会触发方法

如:点击事件(鼠标点击时触发):v-on:click=“方法” 或 @click=“方法”

<div>
    <input type="button" value="按钮1" @click="f()">
    <input type="button" value="按钮2" v-on:click="f()">
</div>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
    let v = new Vue({
        el: "div",
        data: {},
        methods: {
            f: function () {
                console.log("按钮点击了");
            }
        }
    })
</script>
</body>
  1. 遍历
    让元素显示数量和数组进行绑定,变量数组中每一个对象

结构:v-for=“(变量,i) in 数组变量” — i 是下标

<body>
<table border="1">
  <caption>汽车列表</caption>
  <tr>
    <th>编号</th><th>品牌名称</th><th>售价</th><th>类型</th>
  </tr>
    <tr v-for="(car,i) in arr">
        <td>{{i+1}}</td>
        <td>{{car.name}}</td>
        <td>{{car.price}}</td>
        <td>{{car.type}}</td>
    </tr>
</table>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
    let v = new Vue({
        el:"table",
        data:{
            arr:[{name:"比亚迪汉",price:250000,type:"轿车"},
                {name:"特斯拉m3",price:230000,type:"轿车"},
                {name:"蔚来ES8",price:550000,type:"SUV"}]
        }
    })
</script>
</body>
  1. 判断
    让元素的显示状态和变量进行绑定,结果为 true显示,false不显示

结构:v-if = ”变量“ 和 v-else

<body>
<div>
  <!--v-if="变量" 让元素是否显示和变量进行绑定, true显示 false不显示(删除了元素)-->
  <h1 v-if="isVisible">刘德华</h1>
  <!--v-else和v-if结合使用 和上面条件取反-->
  <h1 v-else>张学友</h1>
</div>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
  let v = new Vue({
    el:"div",
    data:{
      isVisible:true
    }
  })
</script>
</body>

总结:
Vue.js 是一个流行的前端 JavaScript 框架,它被设计用于构建单页面应用程序(Single Page Application,SPA)及开发大型复杂 Web 应用。

响应式数据:Vue.js 中的数据对象可以双向绑定,当数据发生变化时,视图也会跟着更新。这种响应式的数据绑定,使开发者可以轻松构建动态交互效果。

组件化开发:Vue.js 将应用程序拆分成多个小组件,每个组件都可以包含自己的 HTML、CSS 和 JavaScript 代码,并且组件之间可以嵌套和通信。这种组件化的开发方式,使得代码可重用性更高,同时提高了应用程序的可维护性和可扩展性。

轻量级框架:Vue.js 只关注视图层,不依赖于任何其他库或框架。相比于 Angular 和 React,Vue.js 更加轻量级,同时也更容易上手和学习。

插件式架构:Vue.js 提供了众多的插件,比如 vue-router、vuex 等,可以轻松地集成到应用程序中,提供更多的功能和特性。

服务端渲染:Vue.js 2.0 版本提供了服务端渲染的支持,使得应用程序可以更好地进行 SEO(Search Engine Optimization,搜索引擎优化)。

社区支持:Vue.js 拥有一个庞大的社区,提供了丰富的文档、教程和开源项目,使得开发者可以快速地入门和开发出高质量的应用程序。

总的来说,Vue.js 是一个功能强大、易于使用的前端框架,它具有响应式数据、组件化开发、插件式架构、服务端渲染等众多特性,广泛应用于 Web 开发领域。

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

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

相关文章

JavaWeb——TCP协议的相关特性

目录 一、TCP 1、特性 2、确认应答 &#xff08;1&#xff09;、定义 &#xff08;2&#xff09;、原理 &#xff08;3&#xff09;、接收缓冲区 3、超时重传 &#xff08;1&#xff09;、丢包 &#xff08;2&#xff09;、定义 &#xff08;3&#xff09;、分类 二、…

idea在main分支上新建其他分支并同步过去

前言&#xff1a;首先得知道以上&#xff08;idea 版本为2021.1.3 &#xff0c;右下角git分支部分&#xff09;是什么含义。 local Branches 本地分支&#xff0c;代表当前项目路径下所存在的本地分支&#xff0c;以上是有三个,都存在与本地仓库 Remote Branches 远程分支&…

腾讯云服务器:轻量应用服务器、云服务器CVM和GPU云服务器配置表

目前腾讯云服务器分为轻量应用服务器、云服务器云服务器云服务器CVM和GPU云服务器&#xff0c;首先介绍一下这三种服务器。 1、腾讯云云服务器&#xff08;Cloud Virtual Machine&#xff0c;CVM&#xff09;提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源&#x…

进程虚拟地址空间划分

任何编程语言->产生指令和数据 我们以x86 32位linux 作为知识介绍的背景 编译后生成exe文件在磁盘上&#xff0c;需要加载到内存才能运行 但不能直接加载到物理内存 linux给当前进程分配一个2^32大小的一块空间&#xff0c;4G 虚拟地址空间解释 它存在&#xff0c;你看得…

背包问题——01背包|完全背包

目录 前言&背包问题的历史 01背包 1、题目 2、暴力解01背包 Ⅰ、代码 3、动态规划解01背包 Ⅰ、二维dp数组解01背包 1&#xff09;dp数组的含义 2&#xff09;递推公式 3&#xff09;dp数组的初始化 4&#xff09;遍历顺序的讨论 5、代码 Ⅱ、一维数组解01背包 1&…

HCLE----atd以及备份方式

atd是一种基于时间的任务调度器&#xff0c;可以在指定时间执行一次性任务。atd启动时会读取/etc/at.allow和/etc/at.deny两个文件&#xff0c;来决定哪些用户有权限使用at命令提交任务。crond是一种周期性任务调度器&#xff0c;可以按照指定的时间间隔执行重复性任务。crond启…

5.3、web服务器简介HTTP协议

5.3、web服务器简介HTTP协议 1.Web-Server&#xff08;网页服务器&#xff09;2.HTTP协议(应用层的协议)①简介②概述③工作原理④HTTP请求报文格式⑤HTTP响应报文格式⑥HTTP请求方法⑦HTTP状态码 1.Web-Server&#xff08;网页服务器&#xff09; 一个 Web Server 就是一个服…

【arduino】超声波垃圾桶

&#x1f38a;专栏【Arduino】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【勋章】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 目录 ⭐效果 ⭐所需器材 ⭐连线图片 ⭐程序代码 ⭐代码分析 …

MySQL常见七种通用的Join查询练习题

准备数据库表 t_dept 和 t_emp CREATE TABLE t_dept (id int NOT NULL AUTO_INCREMENT,deptName varchar(30) DEFAULT NULL,address varchar(40) DEFAULT NULL,CEO int DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT7 DEFAULT CHARSETutf8mb3 CREATE TABLE t…

面包多面包多面包多面包多面包多面包多

1.背景 1.摘要 本文是针对智慧政务中的文本数据挖掘应用的研究。通过建立基于三层网络结构的fastText文本分类模型&#xff0c;聚类量化模型&#xff0c;熵权评估模型解决了群众留言分类&#xff0c;热点问题挖掘&#xff0c;答复意见评价等问题。 针对群众留言分类问题&#…

《学习循环》---C语言

目录 前言&#xff1a; 1.while循环 1.1while循环的结构 1.2while语句中的break和continue 2.getchar配合循环清空缓冲区 3.for循环 3.1for循环的结构 3.2for循环中的break和continue 3.3for循环的注意事项 3.4使用多个循环变量控制for循环 4.do while循环 4.1do …

chrome 浏览器在 112 正式版本以及 114 canary 版本从 devtools 控制台复制文本不会复制高亮显示的文本?

问题 我的 chrome 浏览器版本如下&#xff1a;版本 112.0.5615.138&#xff08;正式版本&#xff09; &#xff08;64 位&#xff09; 今天我在写代码的时候报错了&#xff0c;看了一下控制台浏览器&#xff0c;是某个属性没有定义&#xff0c;然后我双击这个属性名称 ctrl c…

asp.net+C#大学生高校运动会比赛综合管理系统

目录 1 绪论 3 1.1 课题背景 3 1.2 课题目标 3 1.3 研究现状 3 1.4 论文工作内容以及结构安排 4 1.4.1 论文工作内容 4 1.4.2 论文结构安排 4 2 系统开发技术介绍 6 2.1 ASP.NET简介 6 2.2 Microsoft Visual Studio 2010平台 7 2.3 SQL Serve…

第16章_网络编程

第16章_网络编程 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 本章专题与脉络 1. 网络编程概述 Java是 Internet 上的语言&#xff0c;它从语言级上提供了对网络应用程序的支持&#xff0c;程…

达梦数据迁移问题罗列

目录 一、前言 二、问题罗列 一、前言 最近小编接触到国产的数据库达梦数据库&#xff0c;然后在用达梦数据迁移工具MySQL迁移至达梦的时候遇到了一系列的问题现在罗列一下在这里。目前关于国产的数据库达梦这些资料比较少&#xff0c;希望能够帮到有需要的同志们&#xff01…

MySQL 服务的启动和停止

4.MySQL 服务的启动和停止_mysql数据库启停_头疼小宇的博客-CSDN博客

【网络编程】TCP

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;Java EE初阶&#x1f447; 目 录 &#x1f52e;一. TCP流套接字编程&#x1f4bf;二. TCP中的长短连接&#x1f4c0;三. 写一个 TCP 版本的 回显服务器-客户端 &#x1f52e;一. TCP流套接字编程 ServerSock…

d2l 注意力评分函数 --附加mask_softmax讲解

本章节tensor处理操作也不少&#xff0c;逐个讲解下&#xff1a; 目录 1.mask_softmax 1.1探索源码d2l.sequence_mask 2.加性注意力 3.缩放注意力 1.mask_softmax dim-1表示对最后一个维度进行softmax .dim()返回的是维度数 对于需要mask的数&#xff0c;要用绝对值非…

FreeRTOS 任务创建与删除实验

本实验主要实现 FreeRTOS 使用动态方法创建和删除任务&#xff0c;本实验设计了四个任务&#xff0c;这四 个任务的功能如下表所示&#xff1a; 软件设计 1. 程序流程图 本实验的程序流程图&#xff0c;如下图所示&#xff1a; 2. FreeRTOS 函数解析 (1) 函数 xTaskCreate…

spring框架基础知识和基于XML的Bean对象的管理回顾

什么是spring框架&#xff1f; spring基本功能所必须的jar包就是这些 如何获取bean&#xff1f; IOC原理 上面耦合度太高了 改进使用工厂模式 上面并没有把耦合度降低到最低&#xff0c;使用反射 spring实现IOC的两种方式 BeanFactory和ApplicationContext IOC如何管理Bea…