IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> VUE技术 -> 正文阅读

[JavaScript知识库]VUE技术

Vue 技术

第 1 章:Vue 核心

1.1. Vue 简介

1.1.1. 官网

  1. 英文官网: https://vuejs.org/

  2. 中文官网: https://cn.vuejs.org/

1.1.2. 介绍与描述

  1. 动态构建用户界面的渐进式 JavaScript 框架
  2. 作者: 尤雨溪

1.1.3. Vue 的特点

  1. 遵循 MVVM 模式
  2. 编码简洁, 体积小, 运行效率高, 适合移动/PC 端开发
  3. 它本身只关注 UI, 也可以引入其它第三方库开发项目

1.1.4. 与其它 JS 框架的关联

  1. 借鉴 Angular 的模板数据绑定技术

  2. 借鉴 React 的组件化虚拟 DOM 技术

1.1.5. Vue 周边库

  1. vue-cli: vue 脚手架

  2. vue-resource

  3. axios

  4. vue-router: 路由

  5. vuex: 状态管理

  6. element-ui: 基于 vue 的 UI 组件库(PC 端)

1.2. 初识 Vue

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>初识vue</title>
		<!-- 引入vue -->
		<script type="text/javascript" src="../Js/vue.js"></script>
	</head>
	<body>
		<div id="root">
			<!-- 插值语法 -->
			插值语法:<h3>hello,{{name}}!</h3>
			<!-- 指令语法 -->
			指令语法: <br><a v-bind:href="school.url">单击跳转到百度</a>
		</div>
		<script type="text/javascript">
			Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示。
			//创建vue实例
			new Vue({
				el:'#root',
				data:{
					name:'ZZY',
					school:{
						url:"http://baidu.com"
					}
				}
			})
		</script>
	</body>
</html>

1.3. 模板语法

1.3.1. 效果

在这里插入图片描述

1.3.2. 模板的理解

html 中包含了一些 JS 语法代码,语法分为两种,分别为:

  1. 插值语法(双大括号表达式)

  2. 指令(以 v-开头)

1.3.3. 插值语法

  1. 功能: 用于解析标签体内容

  2. 语法: {{xxx}} ,xxxx 会作为 js 表达式解析

1.3.4. 指令语法

  1. 功能: 解析标签属性、解析标签体内容、绑定事件

  2. 举例:v-bind:href = ‘xxxx’ ,xxxx 会作为 js 表达式被解析

  3. 说明:Vue 中有有很多的指令,此处只是用 v-bind 举个例子

1.3.5 el与data的两种写法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>el与data的两种写法</title>
		<script type="text/javascript" src="../Js/vue.js"></script>
	</head>
	<body>
		<div id="root">
			<h1>你好,{{name}}!</h1>
		</div>
		<script type="text/javascript">
			Vue.config.productionTip = false;
			//1、el
			//new Vue({
				// el:'#root',
				// data:{
				// 	name:'zzy'
				// }
			//})
			//2、$mount挂载(更加灵活)
			// const x = new Vue({
			// 	data:{
			// 		name:'zzy'
			// 	}
			// })
			// x.$mount('#root');
			// data的两种写法:1.对象式,即之前的方式
			//2.函数式
			const x = new Vue({
				data:function(){
					//不能写箭头函数data:()=>{}
					//简写 data(){}
					return{
						name:'zzy'
					}
				}
			})
			x.$mount('#root');
		</script>
	</body>
</html>

1.4. 数据绑定

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数据绑定</title>
		<script type="text/javascript" src="../Js/vue.js"></script>
	</head>
	<body>
		<div id="root">
			<h1>你好,{{name}}!</h1>
			<!-- 单向数据绑定 v-bind -->
			单向数据绑定姓名:<input type="text" v-bind:value="name" /><br>
			<!-- 简写 -->
			性别:<input type="text" :value="sex" /><br>
			<!-- 双向数据绑定 v-model -->
			双向数据绑定姓名:<input type="text" v-model:value="name" /><br>
			<!-- 简写 -->
			性别:<input type="text" v-model="sex" /><br>
		</div>
		<script type="text/javascript">
			Vue.config.productionTip == false ;
			new Vue({
				el:'#root',
				data:{
					name:'曾紫钰',
					sex:'女'
				}
			})
		</script>
	</body>
</html>

1.4.1. 效果

在这里插入图片描述

1.4.2. 单向数据绑定

  1. 语法:v-bind:href =“xxx” 或简写为 :href

  2. 特点:数据只能从 data 流向页面

1.4.3. 双向数据绑定

  1. 语法:v-model:value=“xxx” 或简写为 v-model=“xxx”

  2. 特点:数据不仅能从 data 流向页面,还能从页面流向 data

1.5. MVVM 模型

  1. M:模型(Model) :对应 data 中的数据

  2. V:视图(View) :模板

  3. VM:视图模型(ViewModel) : Vue 实例对象

在这里插入图片描述

*1.5 .数据代理

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数据代理</title>
<!-- 		<script type="text/javascript" src="../Js/vue.js"></script>
 -->	</head>
	<body>
		<script type="text/javascript">
			//Vue.config.productionTip == false ;
			let num = 18;
			let person = {
				name:'zzy',
				sex:'女',
			}
			Object.defineProperty(person,'age',{
				//value:18,
				//enumerable:true,//控制属性是否可以枚举,即不表示为...,默认值是false
				//writable:true,//控制属性是否可以被修改,默认值为false,注意修改的是person.age
				//configurable:true//控制属性是否可以被删除,默认值为false
				//当有人读取age时,get函数(getter)被调用,且返回值是age的值
				get(){
					console.log('有人读取age属性了')
					return num
				},
				set(value){
					console.log('有人修改age属性了,且值为',value)
					num = value
				}
			})
			console.log(person);
		</script>
	</body>
</html>

数据代理:通过一个对象代理对另一个对象中的属性的操作(读、写)。如上述代码中,let了两个对象,一个num,一个person,通过getter和setter对num进行读写,从而修改person对象中的age属性。

下面是更为简单的一个例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>何为数据代理</title>
	</head>
	<body>
		<script type="text/javascript">
			let obj1={x:100}
			let obj2={y:100}
			Object.defineProperty(obj2,'z',{
				get(){
					return obj1.x
				},
				set(value){
					obj1.x = value
				}
			})
		</script>
	</body>
</html>

vue中的数据代理:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript" src="../Js/vue.js"></script>
	</head>
	<body>
		<!-- 1.vue中的数据代理:
			通过vm对象来代理data对象中属性的操作(读写)
		2.vue中数据代理的好处:
			更加方便的操作data中的数据
		3.基本原理:
			通过Object.defineProperty()把data对象中所有属性添加到vm中
			为每一个添加到vm上的属性,都指定一个getter和setter
			在getter和setter内部去操作(读写)data中对应的属性 -->
		<div id="root">
			<h2>学校名称:{{name}}</h2>
			<h2>地址:{{address}}</h2>
		</div>
		<script type="text/javascript">
			Vue.config.productionTip = false;
			const vm = new Vue({
				el:'#root',
				data:{
					name:'湖南科技大学',
					address:'湖南湘潭'
				}
			})
		</script>
	</body>
</html>

在这里插入图片描述

1.6. 事件处理

1.6.1. 效果

1.6.2. 绑定监听

  1. v-on:xxx=“fun”

  2. @xxx=“fun”

  3. @xxx=“fun(参数)”

  4. 默认事件形参: event

  5. 隐含属性对象: $event

1.6.3. 事件修饰符

  1. prevent : 阻止事件的默认行为 event.preventDefault()

  2. stop : 停止事件冒泡 event.stopPropagation()

1.6.4. 按键修饰符

  1. keycode : 操作的是某个 keycode 值的键

  2. keyName : 操作的某个按键名的键(少部分)

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:43:22  更:2021-08-02 10:45:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 9:57:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码