零基础学JavaWeb开发(二十五)之 vue快速入门

news2025/1/12 20:49:23

一、什么是VUE

Vue 是一套用于构建用户界面的渐进式JavaScript框架,简化dom操作。

基于MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定.

简单可以总结:

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

VUE基于MVVM(Model-View_ViewModel)思想,实现数据双向绑定

Vue官网:Vue.js - 渐进式 JavaScript 框架 | Vue.js

二、演变过程

01.html+js+css(2007)

02.EasyUI+JQuery (2013)

03.node.js + vue(React,Angular)+ElementUI(iview,antDesign)(2018)

三、什么是MVVM

MVC:

MVC是一种设计模式:

M(Model):模型层。是应用程序中用于处理应用程序数据逻辑的部分,模型对象负责在数据库中存取数据;

V(View):视图层。是应用程序中处理数据显示的部分,视图是依据模型数据创建的;

C(Controller):控制层。是应用程序中处理用户交互的部分,控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

MVVM:

Vue框架中MVVM的M就是后端的数据,V就是节点树,VM就是new出来的那个Vue({})对象

M(Model):模型层。就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model。

V(View):视图层。就是展现出来的用户界面。

VM(ViewModel):视图模型层。连接view和model的桥梁。因为,Model层中的数据往往是不能直接跟View中的控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入的界面数据对象。

MVVM与MVC最大区别:

MVVM与MVC的最大区别就是:它实现了View和Model的自动同步,也就是当Model的数据改变时,我们不用再自己手动操作Dom元素,来改变View的显示,而是改变数据后该数据对应View层显示会自动改变。

四、VUE快速入门

1、新建HTML页面,引入Vue.js文件

<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>

2、在JS代码区域,创建VUE核心对象,进行数据绑定

new Vue({
  el:"#app",
  data(){
    return{
      username:"mayikt"你
    }
  }
});

3、编写视图

<div id = "app">
  <input type="text" name="username" v-model="username">
  {{username}}
</div>

4、效果演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-demo01</title>
</head>

<body>

<div id="app">
    <input type="text" name="username" v-model="username">
    <!-- 插值表达式 -->
    {{username}}
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script>
    // 1.创建vue核心对象
    new Vue({
        el: "#app",
        data() {
            return {
                username: "mayikt"
            }
        }
    });
</script>
</body>
</html>

五、VUE常用指令

Vue指令是带有v-前缀的特殊属性,它们作用于HTML元素,表示它们是Vue提供的特殊属性。将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为

v-if指令:条件性的渲染某元素,判定为true时渲染,否则不渲染

v-else指令:条件性的渲染某元素,判定为true时渲染,否则不渲染

v-show指令:条件渲染指令,根据表达式的真假删除和插入元素

v-for指令:列表渲染,遍历容器的元素或者对象的属性

v-bind指令:为HTML标签绑定属性值,如设置 href , css样式等

v-on指令 :为HTML标签绑定事件

v-model指令:在表单元素上创建双向数据绑定

1、v-bind指令

v-bind指令:为HTML标签绑定属性值,如设置 href , css样式等

相关例子:


<div id="app">
    <a v-bind:href="url">点击跳转www.mayikt.com</a>
    <a :href="url">简写点击跳转www.mayikt.com</a>
</div>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-demo01</title>
</head>

<body>

<div id="app">
    <a v-bind:href="url">点击跳转www.mayikt.com</a>
    <a :href="url">简写点击跳转www.mayikt.com</a>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script>
    // 1.创建vue核心对象
    new Vue({
        el: "#app",
        data() {
            return {
                username: "mayikt",
                url: "http://www.mayikt.com"
            }
        }
    });
</script>
</body>
</html>

2、v-model指令

v-model指令:在表单元素上创建双向数据绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-demo01</title>
</head>

<body>

<div id="app">
    <a v-bind:href="url">点击跳转www.mayikt.com</a>
    <a :href="url">简写点击跳转www.mayikt.com</a>
    <input type="text" v-model="username">
    {{username}}
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script>
    // 1.创建vue核心对象
    new Vue({
        el: "#app",
        data() {
            return {
                username: "mayikt",
                url: "http://www.mayikt.com"
            }
        }
    });
</script>
</body>
</html>

3、v-on指令

为HTML标签绑定事件


<div id="app">
    <input type="button" value="点击我" v-on:click="mayiktShow()">
    <input type="button"  value="点击我" @click="mayiktShow()">
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script>
    // 1.创建vue核心对象
    new Vue({
        el: "#app",
        data() {
            return {
                username: "mayikt",
                url: "http://www.mayikt.com"
            }
        },
        methods: {
            mayiktShow() {
                alert("我是mayikt");
            }
        }
    });
</script>

单击事件 : 事件属性名是 onclick,而在vue中使用是 v-on:click

失去焦点事件:事件属性名是 onblur,而在vue中使用时 v-on:blur

4、v-if指令

v-if指令:条件性的渲染某元素,判定为true时渲染,否则不渲染

v-else指令:条件性的渲染某元素,判定为true时渲染,否则不渲染

v-show指令:条件渲染指令,根据表达式的真假删除和插入元素 根据条件展示某元素,区别在于切换的是display属性的值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-demo01</title>
</head>

<body>

<div id="app">
    <div v-if="state==1">
        div1成功显示
    </div>
    <div v-else>
        其他div成功显示
    </div>
    <input type="text" v-model="state">

    <div v-show="showState==2">显示 show div</div>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script>
    // 1.创建vue核心对象
    new Vue({
        el: "#app",
        data() {
            return {
                username: "mayikt",
                url: "http://www.mayikt.com",
                state: 1,
                showState:3
            }
        },
        methods: {
            mayiktShow() {
                alert("我是mayikt");
            },
            mayiktShow2() {
                alert("我是meite");
            }
        }
    });
</script>
</body>
</html>

5、v-for指令

列表渲染,遍历容器的元素或者对象的属性

<标签 v-for="变量名 in 集合模型数据">
    {{变量名}}
</标签>
<div id="app">
     <div v-for="name in arrays">
         <li>{{name}}</li>
     </div>
</div>

加上索引

<div id="app">
     <div v-for="(name,i) in arrays">
         <li>{{i}}:{{name}}</li>
     </div>
</div>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-demo01</title>
</head>

<body>

<div id="app">
     <div v-for="(name,i) in arrays">
         <li>{{i}}:{{name}}</li>
     </div>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script>
    // 1.创建vue核心对象
    new Vue({
        el: "#app",
        data() {
            return {
                arrays: ["mayikt", "meite", "wangmazi"]
            }
        }
    });
</script>
</body>
</html>

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

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

相关文章

【头歌】循环单链表的基本操作

循环单链表的基本操作第1关&#xff1a;循环单链表的插入操作任务描述本关任务&#xff1a;编写循环单链表的插入操作函数。相关知识对于单链表&#xff0c;每个结点只存储了其后继结点的地址。尾结点之后不再有任何结点&#xff0c;那么它的next域设置有两种方式&#xff1a;将…

Python爬虫网页解析神器Xpath详细讲解

1、XPath介绍 XPath 是一门在 XML 文档中查找信息的语言。最初是用来搜寻 XML 文档的&#xff0c;但同样适用于 HTML 文档的搜索。 2、安装lxml lxml是Python的第三方解析库&#xff0c;支持HTML和XML解析&#xff0c;而且效率极高&#xff0c;弥补了Python自带的xml标准库在…

Mybatis-Plus id生成策略控制

目录 id生成策略控制 不同的表应用不同的id生成策略 名称 TableId AUTO策略 除了AUTO这个策略以外&#xff0c;还有如下几种生成策略: 分布式ID是什么? INPUT策略 ASSIGN_ID策略 ASSIGN_UUID策略 雪花算法 ID生成策略对比 id生成策略控制 不同的表应用不同的id生成…

计算机组成原理 | 第六章:计算机的运算方法 | 进制转换 | 定点运算 | 浮点数运算

文章目录&#x1f4da;进位计数制&#x1f407;任意进制转十进制&#x1f407;十进制整数转换为n进制整数&#x1f407;十进制小数转换为n进制小数&#x1f407;二/八/十六进制的互换&#x1f4da;带符号的二进制数表示⭐️&#x1f407;原码表示法&#x1f407;补码表示法&…

“买卖股票的最佳时机” 系列——我来教你稳赚不亏~

目录 前言 一、买卖股票的最佳时机 ——>指定次数交易&#xff08;1次&#xff09; 1.1、dp定义 1.2、递推公式 1.3、遍历顺序 1.4、初始化 1.5、解题代码 二、买卖股票的最佳时机II ——>交易到结束 2.1、分析 2.2、解题代码 三、买股票的最佳时机III ——>…

【keepass】密码管理软件keepass的安全风险分析,如何在使用keepass的过程中避免泄露数据库信息和密码?

一、安全风险分析 1.1 不正规的来源 如果你使用非官方渠道获得keepass软件或某些插件&#xff0c;那么你的密码管理从一开始就没有安全性可言。因为这玩意是开源的啊&#xff0c;如果对方“很懂”&#xff0c;只要往里面植入一些代码&#xff0c;让你的数据库文件和密钥在后台…

react 项目 中 使用 Dllplugin 打包优化

webpack在build包的时候&#xff0c;有时候会遇到打包时间很长的问题&#xff0c;这里提供了一个解决方案&#xff0c;让打包如丝般顺滑~ 在用 Webpack 打包的时候&#xff0c;对于一些不经常更新的第三方库&#xff0c;比如 react&#xff0c;lodash&#xff0c;vue 我们希望…

C语言基础知识(37)

数组一维数组的定义&#xff1a;类型说明符 数组名【常量表达式】&#xff1b;先定义后引用&#xff1b;一维数组初始化时可以只对一部分元素初始化&#xff0c;在对全部数组元素初始化的时候可以部规定长度&#xff1b;但是若被定义的数组长度与提供的初始值不一样时&#xff…

【MySQL】MySQL索引夺命连环问「持续更新中」

文章目录1. 使用MySQL索引的原因2. 索引的三种常见底层数据结构以及优缺点3. 索引的常见类型以及它是如何发挥作用的&#xff1f;4. MyISAM 和 InnoDB 实现 B 树索引方式的区别是什么&#xff1f;5. InnoDB 为什么设计 B 树索引&#xff1f;6. 什么是覆盖索引和索引下推&#x…

【JavaSE专栏7】Java 常量、变量及其作用域

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

Python论文绘图利器seaborn.lineplot

Python论文绘图利器seaborn.lineplot 提示&#xff1a;前言 Python论文绘图利器seaborn.lineplot 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python论文绘图利器seaborn.lineplot前言一、导入包二、加载数据三…

嵌入式桌面管理系统Matchbox

简介 Matchbox&#xff08;中文译名&#xff1b;火柴盒&#xff09;是X Window System的免费和开源Window Manager&#xff0c;它主要用于嵌入式系统。取名Matchbox&#xff0c;很形象的表明它只适用于屏幕只有火柴盒大小的设备。 buildroot 移植MatchBox session managermat…

高斯秩变换 RankGauss 可能是比标准化/归一化更有效的连续值特征变换方法

文章目录 一、前言二、关键原理三、总结CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 高斯秩变换是 Kaggle 竞赛大佬 Michael Jahrer(Grandmaster) 提出的一种新颖的特征变换方法,他称之为 RankGauss。类似归一化(MinMax)和标准化(Standardization)的作用,…

帆软报表 V8 get_geo_json 任意文件读取漏洞

帆软报表 V8 get_geo_json 任意文件读取漏洞 CNVD-2018-04757 1.漏洞介绍 FineReport报表软件是一款纯Java编写的&#xff0c;集数据展示(报表)和数据录入(表单)功能于一身的企业级web报表工具。 FineReport v8.0版本存在任意文件读取漏洞&#xff0c;攻击者可利用漏洞读取网…

车载以太网 - 测试用例设计 - 头部信息检测 - 10

前面的篇幅已经把ISO 13400中DoIP软件协议规范部分进行详细的介绍说明,如果在文章中有哪些介绍的不充分或者不够详细,欢迎评论区留言讨论;接下来的文章主要介绍DoIP协议相关的测试用例设计,这也是一个测试工程师必备的重要技能之一,能否保证测试执行完成后,软件质量是达到…

超级详解洛谷P4011 孤岛营救问题(bfs超难题)(保证看懂)

题目 说明 1944 年&#xff0c;特种兵麦克接到国防部的命令&#xff0c;要求立即赶赴太平洋上的一个孤岛&#xff0c;营救被敌军俘虏的大兵瑞恩。瑞恩被关押在一个迷宫里&#xff0c;迷宫地形复杂&#xff0c;但幸好麦克得到了迷宫的地形图。迷宫的外形是一个长方形&#xff…

阿里“云开发“小程序(uniCould)

博主ps&#xff1a; 网上资料少的可怜&#xff0c;哎&#xff0c;腾讯云涨价了&#xff0c;论服务器&#xff0c;我肯定选的阿里&#xff0c;再着你们对比下unicould的报价就知道了&#xff0c;如果有钱就另当别论了。 所以这片博文&#xff0c;博主试过之后&#xff0c;先抛出…

(day8) 自学Java——拼图小游戏

GUI(图形用户接口)&#xff0c;是指采用图形化的方式显示操作界面。 Java中包含两套完整体系&#xff1a;AWT包&#xff0c;Swing包 一.代码 package com.abc.ui;import javax.swing.*; import javax.swing.border.BevelBorder; import java.awt.event.ActionEvent; import ja…

JavaEE day5 初识CSS 2

选择器 基本选择器&#xff1a;id选择器、类选择器、元素选择器 复合选择器&#xff1a;并列选择器、子孙选择器、孩子选择器 通配符选择器 *{.....} 任意元素&#xff1a;书写一些全局的规则时使用&#xff0c;就等于是一个全局都要遵守的规则 伪类选择器&#xff1a;针…

Lab 3: Midterm Review

Lab3 部分questionQ5&#xff1a;Its Always a Good PrimeQ6&#xff1a;Church numeralsQ5&#xff1a;It’s Always a Good Prime Implement div_by_primes_under, which takes in an integer nand returns an n-divisibility checker. An n-divisibility-checker is a funct…