【javaWeb 第三篇】Vue快速入门

VUE

vue是一套前端框架,免除原生的js的DOM操作,简化书写

基于MVVM(model-view-viewmodel)思想,实现数据的双向绑定,将编程的关注放在数据上。

什么是框架:

框架相当于一个半成品,是一套高效的代码模板,基于框架开发更加的高效

VUE数据绑定模型:
双向数据绑定

model层中存在着对数据的处理,view说白了就是html界面,两者通过桥梁(viewmodel)进行双向绑定,数据发生变化,页面也会随之发生变化,相同,页面发生变化,数据同样会发生变化

数据绑定:

<html>
   <script src=" ../js/vue.js"></script>
</html>
<body>
    <div id="app">
        <input type="text" v-model="message">
        {{message}}
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                message:"hello "
            }
        })
    </script>
</body>

date中标定的是数据模型,而el相当于id选择器,div中id与#后的id相等,表名此处有vue接管,v-model后message相当于数据绑定,{{}}是差值表达式,是将数据可视化到html界面中

  • 差值表达式
    形式:{{表达式}}
    表达式内容可以是:变量,三元运算符,函数调用,算数运算

vue常用指令

常用指令

  • v-bind 绑定href:
<body>
    <div id="app">
        <a v-bind:href="URL">连接 </a>
        v-bind可以简化为:herf
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                URL:"http://www.baidu.com"
            }
        })
    </script>

v-model用于表单元素的数据双向绑定
注意:
通过v-bind与v-model绑定的变量,必须在数据模型中声明

  • v-on
    v-on click可以简写为@click
    <div id="app">
     <input type="button" value="按钮" v-on:click="handle()">   
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                URL:"http://www.baidu.com"
            }
            methods:{
                handle:function(){
                    alert("点击以下"); 
                }
            },
        })
    </script>
  • v-if
    条件渲染,根据条件判断语句进行页面条件渲染
年龄{{age}},经判定为:
<span v-if="age<=35">年轻人</span>
<span v-else-if="age>35&&age<60">中年人</span>
<span v-else>老年人</span>
  • v-show
    同样通过判断进行条件渲染
年龄{{age}},经判定为:
<span v-show="age<=35">年轻人</span>

v-if与v-show的区别:
v-if通过条件进行渲染,如果条件为false,则不进行渲染,而v-show是都进行渲染,如果条件为false时,属性中的display属性将会不显示该渲染内容

  • v-for
    列表渲染,遍历容器中的元素或者对象的属性
<div v-for="addr in addrs">{{addr}}</div>
<div v-for="(addr,index) in addrs">{{index+1}}:{{addr}}</div>

数据模型为:
data{
addrs:['北京','上海','广州','深圳'] 
}
  • vue生命周期

生命周期:指一个对象从创建到销毁的整个过程

生命周期的八个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法()
生命周期
生命周期图:
生命周期图

  • mounted 挂载完成:
    常用来向服务端请求数据
<script>
new vue(){
el: "#app",
data:{

},
mounted(){
console.log("挂载完成,请求数据 ")
}
}
</script>

ajax

异步的js和xml

作用:
数据交换:通过ajax可以给服务器发送请求,并获取服务器响应的数据
异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术

  • 同步与异步的区别:
    同步
    同步需要等待服务端进行响应,在响应期间,前端处于等待状态
    异步
    异步操作,在服务器端进行处理的时候前端还能够执行其他操作
    原生的ajax请求:
Function loadDoc()

function loadDoc() {
//创建对象
  var xhttp = new XMLHttpRequest();
  //获取服务器响应数据
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     document.getElementById("demo").innerHTML = this.responseText;
    }
  };
  发送异步请求
  xhttp.open("GET", "ajax_info.txt", true);
  xhttp.send();
} 

创建一个XMLHttpRequest对象用来交互数据,当对象中的状态发生变化的时候调用函数,进行判断,如果符合条件,将以字符串的形式返回到html当中

  • axios

对原生的ajax进行了封装,简化书写,快速开发

axios官方文档:
https://www.axios-http.cn/
当使用axios时需要引入axios文件

<script src="js/axios-0.18.0.js"></script>

使用axios发送请求,并获取响应数据

axios({
method:"get",
url:"..."
}).then((result)=>{
console.log(result.data);
});

为了方便还可以通过别名来进行操作:
在这里插入图片描述

axios.get("...url...").then((result)=>{
console.log(result.data);
});

基于vue的ajax动态加载展示:
数据的准备:http://yapi.smart-xwork.cn/mock/169327/emp/list
在页面加载后,自动发送异步请求,加载数据,渲染展示界面

<body>
    <div id="app">
        <table border="1" cellspacing="0" width="60%">
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>图像</th>
                <th>性别</th>
                <th>职位</th>
                <th>入职日期</th>
                <th>最后的操作</th>
            </tr>
            <tr align="center" v-for="(emp,index) in emps">
                <td>{{index+}}</td>
                <td>{{emp.name}}</td>
                <td>
                    <img v-bind:src="emp.image" width="70px" height="50px">
                </td>
                <td>
                    <span v-if="emp.gender==1"></span>
                    <span v-if="emp.gender==2"></span>
                </td>
                <td>{{emp.job}}</td>
                <td>{{emp.entrydate}}</td>
                <td>{{emp.updatetime}}</td>
            </tr>
        </table>
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                emps:[]
            },
            mounted() { 
                //发送异步请求,加载数据
                axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result=>{
                    this.emps=result.data.data;
                })
            },
        });
    </script>
</body>
  • 前后端分离开发

前后端由两个团队进行分别开发,前端向后端发送请求,后端响应前端数据,为了便于统一需要制定统一的开发规范,开发贵伐统一写在文档之中

文档称为接口文档,这里的接口指的是业务功能

前后端分离
前端开发人员与后端开发人员共同查阅接口文档,前端开发人员通过接口文档将参数传递给后端,后端开发人员将接收参数并将数据传回给前端开发人员

  • 接口文档的维护
    接口文档分为线上维护和线下维护,在线方式通过一些在线的接口文档管理平台进行维护,离线的方式是线下通过办公软件进行维护
    接口文档通过项目经理通过需求分析以及页面文档进行提供

  • 一段功能的开发流程:
    首先通过需求分析,然后定义接口(API接口文档),然后通过前后端并行开发,通过前后端测试,最后通过前后端的联调测试

+Yapi

高效,易用的api管理平台,旨在为开发,产品,测试人员提供更优雅的接口管理服务

地址:https://yapi.pro/login
功能:API接口管理,mock服务(模拟测试数据,用于前端功能测试)
如何使用这个平台:
第一步:添加项目
添加项目

第二步:添加接口分类
添加接口分类
添加分类有助于不同的功能模块的管理

第三步:添加接口
在添加的分类上创建接口

  • 前端工程化
    指在企业级的前端项目开发中,把前端开发所需的工具,技术,流程,经验等进行规范化,标准化
    而在使用vue进行开发的过程中如何完成前端工程化,采用vue脚手架vue-cli

vue-cli

是官方提供的一个脚手架,用于快速生成一个vue项目模板

cli脚手架功能:

  1. 统一的目录结构
  2. 本地调试
  3. 热部署(应用程序变动,不需要再次运行就能加载程序)
  4. 单元测试
  5. 集成打包上线
    依赖环境:Modejs
    脚手架的使用首先需要先下载Node.js再下载脚手架
  • 通过脚手架创建vue项目
    两种方式:
    命令行:vue create vue-project01;
    图形化界面 vue ui
    在这里插入图片描述
    输入图形化界面进行创建,点击创建项目
    在这里插入图片描述
    输入项目名,包管理器作者使用的是npm
    在这里插入图片描述
    进行手动设置,选择手动
    在这里插入图片描述
    勾选Router,是项目路由
    在这里插入图片描述

选择版本作者这里使用的是vue2,vue3版本将会在后续作品中推出
检测方式选择默认第一项,进行创建
通过VSCode来打开项目

  • vue项目-目录结构
    通过脚手架创建的项目有标准的目录结构
    在这里插入图片描述
    node.models:用来存放整个项目的依赖包
    public:存放项目的静态文件
    src:存放项目的源代码
    package.json:存放项目的基本信息,以及所需要的资源,以及资源的版本信息
    vue.config.js:保存vue的配置的文件,如:代理,端口的配置

在src目录下:
在这里插入图片描述

  • vue项目启动方式
    第一种:直接在VSCode中进行操作
    在这里插入图片描述
    第二种:在当前项目目录下终端中输入:npm run serve 进行启动

  • vue配置端口号
    在vue.config.js文件当中添加devserver对象

devserver:{
port:7000,
}

完成配置

如何停掉当前正在执行的处理,按键ctrl+c进行停掉处理

Vue项目的开发流程

如果没有进行开发初始启动项目,看到的页面时默认页面index.html,在index文件当中默认引入了入口文件main.js
在main入口文件当中存在关键字import意思为引入模块
举例:

import App from './App.vue'

意思是将根组件App.vue导入到main文件中并起名为App相似的还有export,将本文件导出为模块化,便于其他组件导入
在这里插入图片描述
在main.js文件中vue创建确定一个路由,此处(在es6中属性名与属性值相同可以忽略不写),确定一个函数remder将根组件App中的视图赋予给一个DOM对象,并挂在到#app上

Vue的组件以.vue结尾,每个组件由三个部分组成:<template>,<script>,<style>
<template>:模板部分,用来生成html代码
<script>:js代码部分
<style>: css代码部分

Vue组件库Element

组件库是饿了么团队研发的,为开发者准备的基于Vue 2.0 的桌面端组件库

组件:组成网页的各个部分,例如超链接,按钮,图片,表格,表单,分页条等
地址:https://element.eleme.cn/#/zh-CNListener

  • 入门
    安装ElementUI组件库(在当前工程的目录下),在命令行执行指令:
npm install element-ui@2.15.3

下载之后会存放在node_ modules文件当中
在vue项目中引入ElementUI组件库
在main.js入口文件中输入:

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI);

在views包下创建一个新的.vue文件,在Element官网上进行代码复制
vue项目启动后界面显示的是默认的根组件文件
如果要显示其他需要在根组件的div中引入

<element-view><element-view>
系统自动会在下方引入
import ElementView from './views/element/ElementView.vue'default中输入components:{ElementView},引入文件
  • Element常见组件
    表格组件
    分页组件:当表格数据量过大时配合分页组件使用
    对话框组件

  • 案例:
    根据页面原型完成员工管理的开发,并通过axios完成数据异步加载
    服务端数据获取地址: 数据地址
    步骤:
    创建页面,完成页面的整体布局规划
    布局中各个部分的组件实现
    列表数据的异步加载,并渲染展示

在Vue项目中使用Axios:
在项目中安装axios:npm install axios;
需要使用axios时,导入axios:import axios from ‘axios’;

在向表格中展示数据的时候因为数据与实际展现数据不相符使用插槽:
插槽

Vue路由

URL中的hash(#号)与组件之间的对应关系

  • Vue Router是Vue的官方路由
    组成:
    路由组成

VueRouter: 路由器类,根据路由请求在路由视图中动态渲染选中的组件
<router-link>:请求链接组件,浏览器会解析成<a>(对路由中的路由表进行访问)
<router-view>:动态视图组件,用来渲染展示与路由路径对应的组件
安装路由:

npm install vue-router@3.5.1

定义路由:
在router目录结构下的index.js文件中定义路由


const routes = [
  {
    path: '/emp',
    name: 'emp',
    component:() => import('../views/tits/EmpView.vue')
  },
  {
    path: '/element',
    name: 'element',
    component: () => import('../views/ElementView.vue')
  }
]
在其中配置路由信息

将路由与对应的导航栏的组件绑定

 <el-menu-item index="1-1">
                <router-link to="/emp">员工管理</router-link>
              </el-menu-item>
              <el-menu-item index="1-2">
                <router-link to="/element">部门管理</router-link>
              </el-menu-item>

Vue打包部署

将前端打包部署到前端服务器上
首先进行打包:
点击VSCode左下角npm脚本的第二个build进行项目打包,会打包成一个dist文件
打包文件

打包生成的dist文件

打包之后再将文件部署到Nginx文件当中

Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,在各大型互联网公司都有非常广泛的应用

官网:Nginx官网
下好的压缩包需要解压在一个没有中文以及空格的目录下:
nginx目录
conf:表示配置文件目录
html:表示静态资源文件目录
logs:表示日志文件目录
temp:表示临时文件目录
部署:将打包好的dist目录下的文件,复制到nginx安装目录的html目录下
然后双击启动nginx:默认占用80端口号
如果出现错误:可能80端口号被占用
查询占用信息:
在这里插入图片描述
查询到占用80端口的进程id为4176可以在资源管理器中进行id进程的查询
可以更改nginx使用的端口:
在conf文件中进入nginx.conf更改端口

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java程序设计】【C00391】基于(JavaWeb)Springboot的校园疫情防控信息管理系统(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校园疫情防控信息管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff…

【SpringCloud微服务实战10】DevOps自动化部署微服务项目(Jenkins+Docker+K8s)

一、什么是 DevOps DevOps 是一种重视软件开发人员&#xff08;Developer&#xff09;和运维人员&#xff08;Operations&#xff09;之间沟通与协作的文化、运动或实践&#xff0c;目标在于快速交付高质量的软件产品和服务。DevOps 强调自动化流程、持续集成与交付&#xff08…

C语言二叉树和堆(个人笔记)

二叉树和堆 二叉树1二叉树的概念和结构1.1特殊的二叉树1.2二叉树的性质&#xff08;规定根节点的层数为1&#xff09;1.3二叉树的存储结构 2.二叉树的顺序结构和实现2.1二叉树的顺序结构2.2堆的概念和结构2.3堆的实现2.4堆的应用2.4.1堆排序 2.5TOP-K问题 3.二叉树的遍历4.二叉…

管理阿里云服务器ECS -- 网站选型和搭建

小云&#xff1a;我已经学会了如何登录云服务器ECS了&#xff0c;但是要如何搭建网站呢&#xff1f; 老王&#xff1a;目前有很多的个人网站系统软件&#xff0c;其中 WordPress 是使用非常广泛的一款&#xff0c;而且也可以把 WordPress 当作一个内容管理系统&#xff08;CMS…

Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)

1 exe程序图标概述 在 Windows 操作系统中&#xff0c;程序图标一般会涉及三个地方&#xff1b; &#xff08;1&#xff09; 可执行程序&#xff08;以及对应的快捷方式&#xff09;的图标 &#xff08;2&#xff09; 程序界面标题栏图标 &#xff08;3&#xff09;程序在任务…

C语言什么是形参和实参?如何使⽤?

一、问题 在调⽤函数的时候&#xff0c;调⽤函数和被调⽤函数之间基本都会发⽣数据传递关系&#xff0c;这就要⽤到有参函数&#xff0c;⽽不传递数据的就需要⽆参函数。这样必然涉及形参和实参的概念&#xff0c;那么究竟什么是形参&#xff1f;什么又是实参呢&#xff1f;如何…

编译与链接

环境&#xff1a; 在ASCI C的任何一种实现中&#xff0c;存在两种不同的环境&#xff1a; 1.翻译环境&#xff0c;在这个环境中&#xff0c;源代码被转换为可执行的机器指令&#xff08;二进制指令&#xff09; 2.运行环境&#xff0c;用于实际执行代码。 流程:c文件->翻译…

(4)(4.3) Kogger Sonar

文章目录 前言 1 推荐硬件 2 配置回声探测仪模块 3 连接ArduPilot硬件 4 参数说明 前言 KOGGER 声纳(KOGGER Sonar)是一款结构紧凑、成本低廉的水下回声测深仪模块&#xff0c;带有 UART 接口&#xff0c;电源电压为 5-14v。 1 推荐硬件 CP210x USB->UART 转换器和安装…

脚本应使用项目的主要语言编写

原文&#xff1a;Joo Freitas - 2024.03.24 这是我长时间以来的一个深感赞同的观点。 我参与过的几乎所有项目&#xff0c;都有我们编写的用于自动化重复性过程的脚本。然而&#xff0c;大多数脚本在几周后变得过时且难以维护&#xff0c;因为我们要么不再需要它们&#xff0…

Towhee 小记

文章目录 关于 Towhee✨ 项目特点&#x1f393; 快速入门流水线预定义流水线自定义流水线 &#x1f680; 核心概念 关于 Towhee Towhee 是一个开源的 embedding 框架&#xff0c;包含丰富的数据处理算法与神经网络模型。通过 Towhee&#xff0c;能够轻松地处理非结构化数据&am…

31---JTAG电路设计

视频链接 JTAG电路设计&#xff08;JLINK&XILINX&ALTERA&#xff09;_哔哩哔哩_bilibili JTAG电路设计 1、JTAG简介 JTAG&#xff08;Joint Test Action Group&#xff09;&#xff1a;联合测试工作组&#xff0c;是在名为标准测试访问端口和边界扫描结构的IEEE的标…

Python学习之-正则表达式

目录 前言&#xff1a;1.re.serach1.1例子&#xff1a; 2.re.match2.1示例1&#xff1a;2.2 示例2&#xff1a; 3.re.findall3.1 示例 4.re.fullmatch4.1 示例1&#xff1a;4.2 示例2: 5.re.split5.1 示例1:5.2 示例2&#xff1a;5.3 示例3&#xff1a; 6.re.sub6.1 示例&#…

2024年阿里云服务器价格30元、61元、99元、165元、199元报价

2024年阿里云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网aliyunfuwuqi.com整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff0c;大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新…

【详细讲解React 快速入门教程】

&#x1f525;博主&#xff1a;程序员不想YY啊&#x1f525; &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f4ab; &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 &#x1f308;希望本文对您有所裨益&#xff0c;如有…

虚机无法进入系统一直轮转在内核启动页面处理

【问题现象】 在日常处理虚机过程中会出现&#xff0c;虚机无法进入系统&#xff0c;一直轮转在内核启动页面的情况 【处理办法】 【步骤一】登录原先内核系统&#xff0c;设置默认新内核启动 【步骤二】进入系统后设置 # grubby --set-default /boot/vmlinuz-3.10.0-957.ax…

Healix Protocol 的 HLX 通证预售:医疗领域的未来展望

Healix Protocol推出 HLX 通证预售&#xff0c;将带来医疗领域的重要变革。通过其区块链技术&#xff0c;Healix Protocol致力于重新定义医疗服务的可及性与负担性&#xff0c;成为医疗行业的希望之光。该项目旨在增强透明度、可及性和效率&#xff0c;推动医疗体系向更加公平和…

[计算机效率] 文件预览工具:QuickLook

3.9 文件预览工具&#xff1a;QuickLook Quicklook是一款强大的文件预览工具&#xff0c;可以帮助用户快速浏览文件夹中的文件内容&#xff0c;而无需打开每个文件。 功能特点&#xff1a; 快速预览&#xff1a;Quicklook能够快速预览文件夹中的文件内容&#xff0c;包括文本…

把本地文件上传到HDFS上操作步骤

因为条件有限&#xff0c;我这里以虚拟机centos为例 实验条件&#xff1a;我在虚拟机上创建了三台节点&#xff0c;部署了hadoop&#xff0c;把笔记本上的数据上传到hdfs中 数据打包上传到虚拟机节点上 采用的是rz命令&#xff0c;可以帮我们上传数据 没有的话可以使用命令安装…

虹科Pico汽车示波器 | 免拆诊断案例 | 2018款东风风神AX7车发动机怠速抖动、加速无力

一、故障现象 一辆2018款东风风神AX7车&#xff0c;搭载10UF01发动机&#xff0c;累计行驶里程约为5.3万km。该车因发动机怠速抖动、加速无力及发动机故障灯异常点亮而进厂维修&#xff0c;维修人员用故障检测仪检测&#xff0c;提示气缸3失火&#xff1b;与其他气缸对调点火线…

Questasim 跑自动化脚本使用教程

自动化脚本使用 1.日常工程的自动化脚本程序&#xff0c;一共需要两个文件.do和.文件bat sim.do文件如下 #删除work工作目录 file delete -force work#设置uvm环境变量&#xff0c;指定uvm的dpi位置 set UVM_HOME C:/questasim64/verilog_src/uvm-1.1d set UVM_DPI_HOME …