VUE

54 阅读5分钟

一.是什么

专注于视图,view视图层就当成模板

1.前端做的事儿

<1>网络通信

axios:前端的通信框架

<2>页面跳转

vue-router

<3>状态管理

vuex

<4>视图层

2.视图层

html+css+js

二.为什么用

1.vue的核心是实现了前端的MVVM模式
2.MVVM的核心就是modelview

image.png

三.怎么用

1.vue入门——IDEA直接用

<1>IDEA下载插件方式使用vue组件
<2>IDEA中使用cdn导入vue
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<3>vue编写
    创建vue对象
    绑定标签
    写一个数据
    拿出来数据
<4>测试 
<5>MVVM解析
监听,双向绑定;
效果就是viewmodel根据数据变化立马响应给给前端页面,不需要刷新页面;
达到了前端和后端完全解耦的需求,后端只需要给前端数据就行(json键值对)

image.png

2.vue指令与7大属性

<1>v-:指令
    v-bind: 
        作用和{{}}一样      
    v-on:监听,绑定事件
    v-if
    v-else
    v-elseif

image.png

<2>7大属性

image.png

4.vue基础语法

<1>判断
I.if..else

image.png

II.elseif

image.png

<2>循环   

image.png

<3>vue绑定事件
v-on与methods对象

image.png
image.png

5.基础用法总结

数据放在data: {};
方法放在methods: {};
绑定事件用v-on;
绑定数据{{}};

6.vue核心——双向绑定

vue.js时一个MVVM框架,即数据双向绑定:
数据变视图跟着同步改变;视图变数据跟着同步改变(vue精髓)
v-model:(表单中使用双向数据绑定)
<1>text属性

image.png image.png

<2>textarea属性    

image.png

<3>input单选框    

image.png image.png

<4>下拉框

image.png

7.vue组件——自定义标签

<1>vue组件其实就是自定义标签

image.png

<2>组件中传递数据

image.png

8.网络通信——Axios异步通信

<1>IDEA中settings,javaScript更改es6

<2>为什么用

vue.js是视图层框架,严格遵守sos原则,所以不包含Ajax的通信功能,所以推荐使用Axios框架实现ajax异步通信 

<3>Axios使用

I.创建一个json文件,编写一段假数据

image.png

II.使用cdn方式在线下载获取Axios

image.png

III.获取json数据并响应,测试是否异步

image.png

image.png

image.png

IV.将json数据渲染上页面

i.json数据渲染到前端

image.png

ii.解决闪烁问题

image.png

9.vue——计算属性

<1>是什么
计算出来的结果,保存到属性中;重点在属性;想像成缓存
<2>为什么用
内存中运行:虚拟DOM;
特性就是为了将不经常变化的计算结果进行缓存;对于前端,每节约一点,并发情况就能占优势
<3>怎么用  
I.获取当前时间戳,分别用方法调和计算属性调

image.png

II.测试

image.png

10.vue——插槽slot

11.npm命令

image.png

四.实战

0.vue项目目录结构

image.png

1.vue-cli

<1>是什么

脚手架,快速生成一个vue的项目模板;

<2>为什么用

功能:(类似maven的功能)
    统一的目录结构
    本地调试
    热部署
    单元测试
    集成打包上线

<3>怎么用

安装:

I.环境

    Node.js:官网下载(会自动配置环境)
    Git
    镜像

II.确认是否安装成功

    node -v
    npm -v

III.cnpm

    i.npm是软件包管理工具,国外下载慢,用国内淘宝镜像加速器cnpm;
   ii. npm install cnpm -g 
   iii.cnpm的安装位置

image.png

IV.安装vue-cli

cnpm install vue-cli -g

V.测试vue是否安装成功

vue list
查看可以基于哪些模板创建vue应用程序;
大部分网站时es6,但是开发大部分是es5,所以需要webpack打包降级成es5

image.png

VI.创建vue项目

通过初始化的方式创建项目
i.进入存放vue项目的路径(我的是f:workspaces\vue)
ii.vue init webpack myvue

VII.初始化并运行

f:\workspaces\vue\myvue\cnpm install
f:\workspaces\vue\myvue\npm run dev

VIII.IDEA中运行vue程序

修改idea权限    

image.png

VVI.IDEA中查看目录

image.png image.png image.png image.png image.png image.png

2.模块化webpack

慢慢演进:
...
es6模块:
    <1>es6规范,但是浏览器内核还是es5,所以浏览器还没有实现这个标准,所以开发想要使用es6,就需要es6使用时降级支持浏览器
    <2>webpack
    模块加载器兼打包工具,可以把各种资源当成模块化处理;它的作用就是把es6的代码打包编译成es5的规范,从而支持所有浏览器运行
    <3>webpack使用
    I.安装并测试
    i.npm install webpack -g
    ii.npm install webpack-cli -g        

image.png

    iii.f:\workspaces\vue\myvue\webpack -v
    iv.f:\workspaces\vue\myvue\webpack-cli -g
    
    II.配置
    webpack.config.js
    
    III.使用webpack
    i.创建项目
    在f:\workspaces\vue目录下新建一个文件夹
    ii.项目中创建modules的目录,用于放置JS模块等资源文件(IDEA中在项目下新建一个Directory)
    iii.模块化开发初体验        

image.png

    iv.新建webpack.config.js并执行webpack打包           

image.png image.png

    v.引入      

image.png

3.vue-router路由

<1>是什么
做多个页面之间的跳转
<2>为什么用
vue是soc原则,只关心试图层;后端可以通过请求转发和重定向做页面的跳转,前端需要用到路由组件
<3>怎么用
I.运行一个简单的vue项目

image.png

II.安装    

image.png image.png

III.测试
修改数据后,页面不需要刷新就可以自动的更新展示数据,说明是动态的,这就是热部署

image.png

VI.编写组件,使用路由
功能:完成从首页面跳转到内容页两个组件之间的跳转
i.目录    

image.png

ii.编写组件    

image.png

iii.编写路由配置文件   

image.png

iv.编写主页面    

image.png

v.编写程序主入口

image.png

vi.测试    

image.png

4.实战——vue+elementUI

<1>安装
I.CDN安装
II.npm安装
npm i element-ui -S
<2>创建新项目(管理员权限进入f:\workspaces\vue)   

image.png

<3>
<4>
<5>

5.路由嵌套

6.参数传递及重定向

7.404和路由钩子