Vue简单实践

277 阅读5分钟

这是我参与更文挑战的第24天,活动详情查看: 更文挑战

一、vue的概述

- Vue.js是一个构建数据驱动的 web 界面的渐进式框架

- Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件

- 核心是一个响应的数据绑定系统

二、vue的使用和下载

vue.js地址下载: cn.vuejs.org/v2/guide/in…

三、常见的html标签

成对出现的标签

<h1>h1标签</h1>

<div>div标签可以内部容纳其他标签</div>

<p>p标签是容器标签,可以内部容纳其他标签,段落标签</p>

单标签

1624723146198.jpg

四、渲染

条件渲染

• v-if :条件性的渲染,指令表达式为true时,_x0008_被渲染,可结合使用div标签或 templates元素

• v-else :必须紧跟在带 v-if 或者 v-else-if 的元素的后面

• v-else-if :必须紧跟在带 v-if

列表渲染

• v-for :基于一个数组来渲染一个列表。item in items 形式的特殊语法,其中items 是源数据数组,而 item 则是被迭代的数组元素的别名。item 可为属性,对象,索引.

五、事件处理

v-on v-bind:绑定事件,在触发时运行一些 JavaScript 代码可结合修饰符一起使用

v-on简写成@, v-bind简写成 :

事件修饰符:

.stop常用事件

.prevent

.capture

.self

.once

.passive

常见事件

• click() 鼠标单击

• blur() 元素失去焦点

• focus() 元素获得焦点

• mouseover() 鼠标进入(进入子元素也触发)

• mouseout() 鼠标离开(离开子元素也触发)

• ready() DOM加载完成

六、传参

• v-model (输入值,String,双向绑定)

• size (尺寸,String, medium / small / mini)

• opt (选项列表,Array,kv数组形如[{key:1, value:xxx}])

• seperator (分隔符,String,如’,’、’|’、’-’)

• multiple (是否支持多选,Boolean)

• placeholder (提示,String)

七、表单输入绑定

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

- <label>标签 表示表单元素的文字标注标签,定义文字标注

- <input>标签 表示表单元素的用户输入标签,定义不同类型的用户输入数据方式

type属性

- type="text" 定义单行文本输入框

- type="password" 定义密码输入框

- type="radio" 定义单选框

- type="checkbox" 定义复选框

- type="file" 定义上传文件

- type="submit" 定义提交按钮

- type="reset" 定义重置按钮

- type="button" 定义一个普通按钮

- <textarea>标签 表示表单元素的多行文本输入框标签 定义多行文本输入框

- <select>标签 表示表单元素的下拉列表标签 定义下拉列表

- <option>标签 与<select>标签配合,定义下拉列表中的选项

八、项目搭建

开发环境:idea 或 vscode

环境搭建:

  1. 安装node环境

  2. vue项目环境

基础知识准备

  1. html

  2. js,jquery,javascript,axios

  3. vue框架

4.ui组件:element-ui

Vue组件

* 组件(Component)是Vue.js最强大的功能之一

* 组件可以封装重用代码

* 组件都是 Vue 的实例,可接受相同的选项对象 ,并提供相同的生命周期钩子

- 官方网站element.eleme.cn/#/zh-CN/com…

- Element-ui将样式封装成单文件组件,可以直接在项目中调用- 主要目录

页面调用结构

- 文件夹1(src),开发目录

- 文件夹components:所有.vue单文件组件都在这个目录下

- 文件夹router:单文件组件的路由都在这个目录下

- 文件夹2(static),静态资源目录,所有的css,js文件放在这个文件夹

- 文件夹3(dist),项目打包发布文件夹,编译后的项目文件都在这个文件夹中

相关目录

- node_modules目录是node的包目录

- config是配置目录

- build是项目打包时依赖的目录

单文件组件

• 单文件组件:将一个组件相关的html、css、js写在一个单独的文件中

• 一个组件具有了结构、表现和行为的完整功能

• 方便组件之间随意组合以及组件的重用

• 文件扩展名为.vue

• 注意:文件中的js代码要有空格,并且不能以分号结尾

在组件中data 是一个函数,非字典,且必须返回字典,

组件template 中只能包括一个跟元素标签,需要多个标签,可使用div嵌套

主文件index.html

- index.html中引入src文件夹中的main.js

- main.js中导入顶级单文件组件App.vue

- App.vue中通过组件嵌套或者路由来引用components文

件夹中的其他单文件组件

所有的组件文件都被创建在src/components/目录下

所有的路由规则都配置在src/router/index.js文件中

九、vue实践

.get.get和.post方法的参数说明:

$.get(url,data,success(data, status, xhr),dataType).error(func)

$.post(url,data,success(data, status, xhr),dataType).error(func)

- url 请求地址

- data 设置发送给服务器的数据,没有参数不需要设置

- success 设置请求成功后的回调函数

- data 请求的结果数据

- status 请求的状态信息, 比如: "success"

- xhr 底层发送http请求XMLHttpRequest对象

- dataType 设置返回的数据格式: "xml"、 "html"、 "text"、 "json"

- error 表示错误异常处理

- func 错误异常回调函数

axios原生请求

axios 数据格式为Payload 或 Form Data

Payload和Form Data的主要设置是根据请求头的 Content-Type 的值来的:

Payload Content-Type: 'application/json; charset=utf-8'

Form Data Content-Type: 'application/x-www-form-urlencoded'

axios拦截器

通过request拦截器在每个请求头里面塞入token,好让后端对请求进行权限验证。

创建一个respone拦截器,当服务端返回特殊的状态码,我们统一做处理,如没权限或者token失效等操作。

单文件组件

• 新建一个xx.vue 文件

• 新增并暴露api对象(src/api)

• 首先导入用到的组件和axios

• 在data中将要用到的数据给一个初始值,为空

• 在methods中写方法,发送axios获取数据或者调用api

• 根据需要选择配置域名

• 配置菜单访问路径地址

(src/components/layout/data/menu.js)

• 映射路由地址(src/router/index.js)