【Vue】Java后端程序员也必须掌握的前端框架(上)

简介: 【Vue】Java后端程序员也必须掌握的前端框架(上)

前言


本文为Vue框架基础知识、语法与使用介绍,Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~


一、MVVM模式的实现者


Model:模型层,这里标识JavaScript对象

View:视图层,在这里表示DOM(HTML操作的元素)

ViewModel:连接视图和数据的中间件,Vue.js就是MVVM中的ViewModel层的实现者

注意:

ViewModel能够观察到数据的变化,并对视图对应的内容进行更新

ViewModel能够监听到视图的变化,并能够通知数据发生改变


例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--视图层DOM-->
<div id="app">
    <!--拿到数据data-->
    { {message} }
</div>
<!--
    ViewModel在浏览器端显示
    ViewModel连接视图和数据的中间件
    ViewModel 能够观察到数据的变化,并对视图对应的内容进行更新
    ViewModel 能够监听到视图的变化,并能够通知数据发生改变
    Vue.js 就是一个 MVVM 的实现者,他的核心就是实现了 DOM 监听 与 数据绑定
-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"> </script>
<script>
    var vm = new Vue({
        /*元素,这就绑定了div里面的元素*/
        el:"#app",
        /*data交给前端*/
        <!--Model模型层,控制视图层-->
        data:{
            message:"hello vue"
        }
    });
</script>
</body>
</html>

二、Vue的7个属性


el:
data:将视图层的数据抽象出来存放在data中
template:用来设置模板
methods:放置页面中的业务逻辑,js方法一般放置在methods中
render:创建真正的Virtual Dom
computed:用来计算
watch:
    watch:function(new,old){}
    监听data中数据的变化
    两个参数,一个返回新值,一个返回旧值

三、Vue基本语法

<span>标签属性
v-bind:title="message":鼠标悬停显示文字
判断-循环
v-if、v-else、v-else-if
如:
<h1 v-if="ok">
    Yes
</h1>
v-for
如:
<li v-for="item in items">
    { {item.message} }
</li>

四、Vue绑定事件


  • v-on属性可以监听事件
  • 如:v-on:事件=“xxxx”
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            message:"吴吉凯"
        },
        methods:{
            //方法必须定义在Vue的Methods对象中
            sayHi:function (event) {
                alert(this.message)
            }
        }
    });
</script>
<div id="app">
    <button v-on:click="sayHi"></button>
</div>


五、Vue双向绑定


  • 可以用 v-model 指令在表单 < input>、< textarea> 及 < select>
    元元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素


<div id="app">
    输入的文本为:<input type="text" v-model="message"> 
    //把数据取出来
    { {message} }
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"> </script>
<script>
    var vm = new Vue({
        /*元素,这就绑定了div里面的元素*/
        el:"#app",
        /*data交给前端*/
        <!--Model模型层,控制视图层-->
        data:{
            message:"123"
        }
    });
</script>
<!--    单选框-->
性别:
<input type="radio" name="sex" value="男" v-model="checked">男
<input type="radio" name="sex" value="女" v-model="checked">女
<p>
    选中了谁{ {checked} }
</p>
<!--    下拉框-->
<select name="" id="" v-model="selected">
    <option value="" disabled>---请选择---</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>
<span>
    Value:{ {selected} }
</span>    

六、Vue组件(可复用的模板)

//定义一个vue组件
Vue.component("qingjia",{
    props:['qin'],
    template:'<li>{ {qin} }</li>'
});
var vm = new Vue({
    el:"#app",
    data:{
        items:["java","Linux","前端"]
    }
});
<!--
    用v-for遍历
    使用v-bind绑定组件qin和遍历的名称item
-->
<qingjia v-for="item in items" v-bind:qin="item"></qingjia>


七、Axios异步通信


  • 用在浏览器端和NodeJS的异步通信,主要实现AJAX异步通信
// 使用:npm install axios  导入axios的包
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

八、Vue的生命周期


  • 创建–>初始化数据–>编译模板–>挂载DOM–>渲染–>更新–>渲染、卸载


<div id="app">
    <div>
        { {info.name} }
        { {info.address.city} }
        <a v-bind:herf="info.url"></a>
    </div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"> </script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
var vm = new Vue({
    el:"#app",
    //钩子函数
    //这个data是个方法
    data(){
        return{
            //请求的返回参数必须和json字符串一样
            info:{
                name:null,
                address:{
                    street:null,
                    city:null
                },
                url:null
            }
        }
    },
    mounted(){
        //通信交给下面这个地方可以改成ajax
        axios.get('data.json').then(response=>(this.info=response.data))
    }
});
</script>

九、计算属性


计算出来的结果保存在属性中,内存中运行:虚拟DOM

计算属性的重点突出在 属性 两个字上(属性是名词),首先它是个 属性

其次这个属性有计算的能力(计算是动词),这里的计算就是个函数;简单点说,它就是一个能够将计算结果缓存起来的属性(将行为转化成了静态的属性),仅此而已;可以想象为缓存!

<div id="app">
<p>{ {currentTime1()} }</p>
<p>{ {currentTime2} }</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"> </script>
<script>
var vm = new Vue({
el:”#app”,
data:{
message:”hello”
},
methods: {
currentTime1:function () {
return Date.now();//返回当前时间戳
}
},
computed:{//计算属性
currentTime2:function () {
return Date.now();//返回当前时间戳
}
}
});
</script>

注意:


methods 和 computed 里的东西不能重名

说明:


methods:定义方法,调用方法使用 currentTime1(),需要带括号

computed:定义计算属性,调用属性使用 currentTime2,不需要带括号

计算属性的主要特性就是为了将不经常变化的计算结果进行缓存,以节约我们的系统开销


十、插槽solt


  • 在 Vue 中我们使用 元素,作为承载分发内容的出口,作者称其为 插槽,可以应用在组合组件的场景中
<div id="app">
<todo>
<todo-title slot="todo-title" v-bind:title="title"></todo-title>
<todo-items slot="todo-items" v-for="item in todoItems" :item="item"></todo-items>
</todo>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"> </script>
<script>
// 定义一个待办事项的组件
//插槽
Vue.component(‘todo’, {
template:
‘<div>\
<slot name="todo-title"></slot>\
<ul>\
<solt name="todo-items"></solt>\
</ul>\
</div>‘
});
Vue.component(“todo-title”,{
props: [‘title’],
template: ‘<div>{ {title} }</div>‘
});
Vue.component(“todo-items”,{
props: [‘item’],
template: ‘<li>{ {item} }</li>‘
});
var vm = new Vue({
el:”#app”,
data:{
title:’kaungshen’,
todoItems:[‘狂神说’,’java’]
}
});
</script>

后记


本文下接:【Vue】Java后端程序员也必须掌握的前端框架(下)

Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~



相关文章
|
1月前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
195 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
11天前
|
人工智能 前端开发 JavaScript
AI程序员:通义灵码 2.0应用VScode前端开发深度体验
AI程序员:通义灵码 2.0应用VScode前端开发深度体验,在软件开发领域,人工智能技术的融入正深刻改变着程序员的工作方式。通义灵码 2.0 作为一款先进的 AI 编程助手,与广受欢迎的代码编辑器 Visual Studio Code(VScode)相结合,为前端开发带来了全新的可能性。本文将详细分享通义灵码 2.0 在 VScode 前端开发环境中的深度使用体验。
130 2
|
1月前
|
人工智能 Java 程序员
【AI程序员】通义灵码 AI 程序员全面上线JAVA使用体验
通过 AI 程序编写一个JAVA后台项目登陆页面
416 42
|
1月前
|
JavaScript 安全 Java
智慧产科一体化管理平台源码,基于Java,Vue,ElementUI技术开发,二开快捷
智慧产科一体化管理平台覆盖从备孕到产后42天的全流程管理,构建科室协同、医患沟通及智能设备互联平台。通过移动端扫码建卡、自助报道、智能采集数据等手段优化就诊流程,提升孕妇就诊体验,并实现高危孕产妇五色管理和孕妇学校三位一体化管理,全面提升妇幼健康宣教质量。
51 12
|
7天前
|
人工智能 JavaScript 前端开发
Vue 性能革命:揭秘前端优化的终极技巧;Vue优化技巧,解决Vue项目卡顿问题
Vue在处理少量数据和有限dom的情况下技术已经非常成熟了,但现在随着AI时代的到来,海量数据场景会越来越多,Vue优化技巧也是必备技能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
2月前
|
JavaScript 前端开发 jenkins
抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目
本文探讨了在不依赖Node和VSCode的情况下,仅使用记事本和浏览器开发一个完整的Vue3前端项目的方法。通过CDN引入Vue、Vue Router、Element-UI等库,直接编写HTML文件实现页面功能,展示了前端开发的本质是生成HTML。虽然日常开发离不开现代工具,但掌握这种基础方法有助于快速实现想法或应对特殊环境限制。文章还介绍了如何用Node简单部署HTML文件到服务器,提供了一种高效、轻量的开发思路。
75 10
|
2月前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
2月前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
120 7
|
3月前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
183 13
|
3月前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
206 1

热门文章

最新文章