vue介绍
什么是vue
vue是一套用于构建用户界面的渐进式框架。
框架和库的区别
库是一种插件,是一种封装好的特定方法的集合。提供给开发者使用,控制器在使用者手里。
框架是一套架构,会基于自身特定向用户提供一套相当完整的解决方案,控制权在框架本身,使用者需要按照框架所规定的某种特定规范进行开发。
目前的流行前端框架
Angular Vue React
流行的一些库jquery ,Zepto
vue作为前端框架的特点
- 构建用户界面,只需要关系view层
- 易学,轻量快速
- 渐进式框架
什么是渐进式?
1.声明式渲染
2.组件系统
3.客户端路由
4.大规模状态管理
5.构建工具
vue优点:
响应式的数据绑定:
当数据发生改变,视图可以自动更新,可以不用关心dom的操作,专心数据操作。
可组合的视图组件:
把视图按照功能切分成若干基本单元。
什么是MVVM
什么是MVC,MVC是后端的分层开发概念,M-modle数据层面,C-controller数据控制层,V-view前端人员的视图层。
什么是MVVM,其中M-保存每个页面中的数据,VM-是一座桥将M和V进行分割,M和V的数据交互都需要它来帮助,V-是每个页面的html。
前端
MVVM是前端视图层的分层开发思想,主要把每个页面,分成了M,V和VM,VM是MVVM的思想的核心,VM是M和V之间的调度者。
前端MVVM的思想是为了让我们开发更加方便,因为MVVM提供了数据的双向绑定,数据的双向绑定时由MV提供的。
M
M保存的是每个页面中单独的数据
VM
它是一个调度者,分割了M和V。
V
是每个页面中HTML结构
app.js
项目的入口模块
一切的请求,都要先进入这里进行chuli
app.js并没有路由分发的功能,需要调用router.js模块进行路由的分发处理
router.js
路由分发处理模块,只负责分发路由
controller
这是业务逻辑的处理层
在这个模块中,封装了一些具体业务逻辑处理的逻辑代码,但是,为了保证职能单一,此模块只负责处理业务,不负责处理数据的CRUD。
Model层
只负责操作数据库,执行对应sql语句
创建VUE实例
安装:
1.去官网下载指定顶vue版本包
2.使用cdn使用线上版本
3.使用npm进行安装
4.使用CLI脚手架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--导入Vue cdn 的网址-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.22/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p>{{msg}}</p>
</div>
<script>
var vm = new Vue({
// 也可以绑定docuemnt.getElementById('#app')返回的app对象
el:"#app",
data:{
msg:"第一个案例"
}
})
</script>
</body>
</html>
v-text 能展示对应data中数据内容,也能在数据基础上做运算
v-html -- html标签渲染
容易产生xss攻击
如何防止xss攻击:
1.前端过滤
2.后台转义
3.给cookie 加上属性 http
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--导入Vue cdn 的网址-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.22/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p v-html="msg"></p>
</div>
<script>
var vm = new Vue({
el:"#app",
data:{
msg:"<span style='color:red'>v-html渲染</span>"
}
})
</script>
</body>
</html>
v-cloak
'v-text' 虽然没有数据加载闪烁问题,但是会将标签中间的数据覆盖,也不能渲
染html格式数据。
'v-html' 谨慎使用会出现xss攻击的风险
若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。
请点赞!因为你们的赞同/鼓励是我写作的最大动力!
欢迎关注达达的简书!
这是一个有质量,有态度的博客