【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全栈学习技术清单~



相关文章
|
7天前
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
44 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
4天前
|
人工智能 Java 程序员
【AI程序员】通义灵码 AI 程序员全面上线JAVA使用体验
通过 AI 程序编写一个JAVA后台项目登陆页面
121 17
|
11天前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
116 12
|
28天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
52 2
|
28天前
|
前端开发 NoSQL Java
【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
本文介绍了如何配置和启动基于Java的若依(RuoYi)项目,涵盖后端和前端的详细步骤。首先,准备Redis、MySQL以及IDE(如Idea和VS)。接着,通过GitHub获取代码并导入到IDE中,执行必要的SQL文件和配置数据库密码。然后,启动Redis并进行相关配置。最后,按照前端配置步骤克隆前端代码库,打开终端执行命令完成前端配置。整个过程详细记录了每一步的操作,帮助开发者顺利部署若依项目。 如果你觉得有帮助,请点赞、关注和收藏,这将是我持续分享的动力!
283 1
|
2月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
170 3
|
3月前
|
SQL 存储 Java
面向 Java 程序员的 SQLite 替代品
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
|
3月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
121 3
|
4月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
304 14
|
4月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
83 0

热门文章

最新文章