Vue前端框架基础+Element的使用
目录前置内容:
MVVM
- M:Model,数据模型,JavaScriptObjects
- V:View,视图,页面标签
- VM:ViewModel,包括 Dom Listeners 和 Dtat Bindings ,由VUE提供,实现数据的双向绑定,视图和模型任意一者发生改变,另一者随之改变
双向绑定效果展示
{{username}}
1.2 快速入门
-
示例
-
新建HTML页面,引入Vue.js文件
-
在JS代码区域创建Vue核心对象,进行数据绑定
new Vue({ // el属性:即Element,确定vue控制的区域,写入为一个选择器,使用标签id el: "#app", // data属性:数据的简化书写格式,返回一个模型数据 data() { // data() 是 ECMAScript 6 版本的新的写法 return { // 定义了username的模型数据,初始化为空串 username: "" } } /*data: function () { return { username:"" } }*/ // methods属性:用来定义函数,暂时未使用到 }); -
编写视图
{{username}}
-
1.3 Vue指令
指令:HTML 标签上带有 v- 前缀的特殊属性,不同指令具有不同含义。例如:v-if,v-for…
常见指令:
指令 作用 v-bind 为HTML标签绑定属性值,如设置 href , css样式等 v-model 在表单元素上创建双向数据绑定 v-on 为HTML标签绑定事件 v-if 条件性的渲染某元素,判定为true时渲染,否则不渲染 v-else :: v-else-if :: v-show 根据条件展示某元素,区别在于切换的是display属性的值 v-for 列表渲染,遍历容器的元素或者对象的属性
1.3.1 v-bind & v-model 指令
-
v-bind
该指令可以给标签原有属性绑定模型数据。这样模型数据发生变化,标签属性值也随之发生变化
-
核心对象
-
视图部分
-
-
v-model
用于实现数据的双向绑定
详见快速入门,此处不再赘述
1.3.2 v-on 指令
为HTML标签绑定事件
-
核心对象
// 创建vue核心对象 new Vue({ el:"#app", // 使用methods属性,属性值为任意个方法,注意格式 methods:{ show(){ alert("单击事件"); } } }); -
视图部分
-
注意事项:
v-on:后面的事件名称是之前原生事件属性名去掉on如:
- 单击事件 : 事件属性名是 onclick,而在vue中使用是
v-on:click - 失去焦点事件:事件属性名是 onblur,而在vue中使用时
v-on:blur
- 单击事件 : 事件属性名是 onclick,而在vue中使用是
1.3.3 条件判断指令
-
核心对象
div1div2div3
v-show count == 1
-
视图代码
// 创建vue核心对象 new Vue({ el:"#app", data(){ return { count:0 } } });
1.3.4 v-for 指令
-
迭代器语法
<标签 v-for="变量名 in 集合模型数据"> {{变量名}} 标签> -
索引语法
<标签 v-for="(变量名,索引变量) in 集合模型数据"> {{索引变量 + 1}} {{变量名}} 标签> -
代码演示
-
vue代码
new Vue({ el: "#app", data() { return { addrs: ["北京", "上海", "广州"] } } }); -
视图代码
{{addr}}
{{i}} ---- {{addr}}
-
1.4 生命周期
-
生命周期的八个阶段
状态 阶段周期 beforeCreate 创建前 created 创建后 beforeMount 载入前 mounted 挂载完成 beforeUpdate 更新前 updated 更新后 beforeDestroy 销毁前 destroyed 销毁后 -
生命周期示意图
-
生命周期函数
new Vue({ el: "#app", data() { return { addrs: ["北京", "上海", "广州"] } }, method:{ show(){ alert(""); } }, // 挂载完成时将被执行 mounted(){ alert("页面加载完成"); } });
1.5 案例
1.5.1 需求
使用Vue简化AJAX中的品牌数据展示案例
1.5.2 查询所有功能
1.5.2.1 实现方式
-
页面加载完成后发送异步请求,获取列表数据,使用
mounted() -
后台收到请求调用对应service方法进行查询
-
将List集合转换为JSON数据
-
响应JSON数据
-
便利集合数据,展示表格,使用
v-for
1.5.2.2 编码
-
引入Vue的JS文件
-
创建Vue对象
new Vue({ el:"#app", data(){ return{ // 注意此处为数组 brands:[] } }, // 当前页面加载完成后发送AJAX请求,查询数据 mounted(){ // Axios无法直接使用原生的this var _this = this; axios({ method: "get", url: "http://localhost:8080//brand-demo-ajax/selectAll" }).then(function (resp) { // 接收后台给到的数据,为JSON串,可自动反序列化为JavaScriptObjects _this.brands = resp.data; }) } }) -
修改视图
-
完整代码展示
Title
1.5.3 添加功能
1.5.3.1 实现方式
-
点击提交按钮,发送ajax请求,携带表单JSON数据,使用
v-model -
后台接收请求,查询接收到的品牌数据
-
调用对应的service方法添加数据
-
响应成功标识
-
获取数据,判断是否添加成功,跳转到查询所有数据页面
1.5.3.2 编码
-
引入Vue的JS文件(不再赘述)
-
创建Vue对象
new Vue({ el: "#app", data(){ return { brand:{} } }, methods: { // 发送AJAX请求 submitFrom() { // Axios无法直接使用原生的this var _this = this; axios({ method: "post", url: "http://localhost:8080/brand-demo-ajax/add", // Axios传递参数时会自动将JavaScriptObject序列化为JSON串 data: _this.brand }).then(function (resp){ // 判断响应数据是否为 success if (resp.data == "success") { // 重定向到查询所有页面 location.href = "http://localhost:8080/brand-demo-ajax/brand.html"; } }) } } }) -
修改视图
添加品牌
-
页面完整代码
添加品牌 添加品牌
2、Element
概述:CV工程师上线(啊不是
官网:Element官网(基于Vue2.x)
2.1 快速入门
-
引入 Element 的 Css、JS 以及 Vue.js
-
创建 Vue 核心对象
new Vue({ el:"#app" }) -
复制官网 Element 组件代码
Title 默认按钮 主要按钮 成功按钮 信息按钮 警告按钮 删除 朴素按钮 主要按钮 成功按钮 信息按钮 警告按钮 危险按钮 圆角按钮 主要按钮 成功按钮 信息按钮 警告按钮 危险按钮
2.2 Element 布局
2.2.1 Layout 局部
-
通过基础的 24 分栏,迅速简便地创建布局。也就是默认将一行分为 24 栏,根据页面要求给每一列设置所占的栏数。
-
代码示例
Title
2.2.2 Container 布局容器
-
官网给出的 Container 容器布局案例
Title 导航一 分组一 选项1 选项2 选项3 选项4 选项4-1 导航二 分组一 选项1 选项2 选项3 选项4 选项4-1 导航三 分组一 选项1 选项2 选项3 选项4 选项4-1 王小虎查看 新增 删除
2.3 案例
2.3.1 基本页面准备
Title
2.3.2 完整代码展示
前端内容不是本人学习重点,此处不做详细说明
步骤说明:
- 视图样式
- 处理事件所需的函数
- 对Vue核心对象和视图数据绑定模型
Title
查询
批量删除
新增
提交
取消
修改
删除