1.vue.js知识介绍

155 阅读2分钟

1.vue.js 尤雨溪,首个国产的前端开发框架。

2.vue.js 渐进式框架

2.1 库--主要提供api jquery
2.2 框架--主要提供 基础模块,比喻虚拟dom
很多时候框架和库已经没有明显的区别了
2.3渐进式 声明渲染--组件系统--客户端路由-集中式管理--项目构建
功能比较强大

3.vue基本使用 helloworld

image.png

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
    <title>vue基本语法</title>
    
  </head>
  <body>
	  <!-- 1.生产一个div容器 -->
    <div id="app">{{msg}}</div>
	<!-- 4.把js里面的 msg 信息放到div 插入表达式支持基本计算-->
	<div>{{1+2}}</div>
	<div id="app1">{ {msg + "---"+ 1+2} }</div>
	<!-- 2.引用vue.js -->
    <script type="text/javascript" src="vue.js"></script>
	<script>
		// 3.创建1个实例
		var vm = new Vue({
			el:'#app',   // el元素的挂载位置  把元素数据关联在什么位置 可以是css ,dom
			data:{     // data 模型数据 值是一个对象
				msg:'hell world jakc'
			}
		});
		
		
	</script>
  </body>
</html>

	

4.vue 模块语法-前端渲染 把数据填充到html中

image.png 4.1 原生JS拼接字符串 -代码复杂 每个人不一样
4.2 模版引擎--按语法规则使用,不提供事件处理
4.3 vue模版语法
插值表达式
指令
事件绑定
属性绑定
样式绑定
分支循环结构

5.指令相关概念

5.1 什么是自定义属性 H5里面的data
vue指令格式 v 开头的
5.2 ## v-cloak 这个指令保持在元素上直到关联组件实例结束编译。
和 CSS 规则如[v-cloak] { display: none }一起用时
,这个指令可以隐藏未编译的 Mustache 标签直到组件实例准备完毕。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			[v-cloak]{
				display: none;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<div v-cloak>{{msg}}</div>
		</div>
		<script src="vue.js"></script>
		<script>
			var vm = new Vue({
				el:'#app',
				data:{
					msg:'hell world'
				}
			})
		</script>
	</body>
</html>

5.3 v-text

更新元素的 textContent。如果要更新部分的

<div v-cloak>{{msg}}</div>  这个2个表达式意思是一致的啊
<div v-text = 'msg'></div>

5.4 ## v-html更新元素的 innerhtml元素

容易导致 XSS 攻击。只在可信内容上使用

5.5## v-pre

跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			[v-cloak]{
				display: none;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<div v-cloak>{{msg}}</div>
			<div v-text = 'msg'></div>
			<div v-html = 'msg1'></div>
			<div v-pre >{{msg}}</div>
		</div>
		<script src="vue.js"></script>
		<script>
			var vm = new Vue({
				el:'#app',
				data:{
					msg:'hell world',
					msg1:'html'
				}
			})
		</script>
	</body>
</html>

5.5 ## v-once -- 后面vue不会监听 会提高性能 响应式-css样式和dom 内容变化 v-once 只编译一次,响应后不在有变化 在浏览器操作dom

image.png

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
	</head>
	<body>
		<div id="app">
			<div >{{msg}}</div>
			<div v-once>{{info}}</div>
			
		</div>
		<script src="vue.js"></script>
		<script>
			var vm = new Vue({
				el:'#app',
				data:{
					msg:'hell world',
					info:'hi'
				}
			})
		</script>
	</body>
</html>

5.6 ## v-model随表单控件类型不同而不同

在表单控件或者组件上创建双向绑定

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
	</head>
	<body>
		<div id="app">
			<div >{{msg}}</div>
			<div>
				<input type="text" name="" id="" v-model='msg'>
			</div>
			
		</div>
		<script src="vue.js"></script>
		<script>
			var vm = new Vue({
				el:'#app',
				data:{
					msg:'hell world',
					info:'hi'
				}
			})
		</script>
	</body>
</html>

image.png

6.mvvm 模式

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、[音频]这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)[模式]与WPF结合的应用方式时发展演变过来的一种新型架构[框架]。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

image.png