Vue基础总结

大纲

1.概述

2.计算

3.监听

4.实例化参数

5.自定义指令

6.过滤-管道

7.指令以及渲染和绑定

8.动画

9.组件

1.概述

vue是一款渐进式javascript前端框架

作者:尤雨溪

特点:
1.简单,上手方便
2.结合Angular指令与react组件思维
3.生态丰富(插件多)API文档完善

2.计算computed

计算简单来说就是从现有的数据中计算出新的数据

如:把/把msg:傻子vue转化成rmsg   vue傻子


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
 
		<div id="app">
			{{rmsg}}
		</div>
		<script type="text/javascript">
 
			new Vue({
				el:"#app",
				data:{msg:"傻子vue"},
				computed:{
				rmsg(){return this.msg.split('').reverse().join('')}}
			})
		</script>
	</body>
</html>

3.监听wacth

监听数据的变化,并执行回调函数handler


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<p>{{num}}<input type="text" v-model="num" /></p>
		</div>
		<script type="text/javascript">
			new Vue({
				el:"#app",
				data:{
					person:{
						age:15
					},
					num:8
				},
				watch:{
					"num":{
						
						handler(nval,oval){
							console.log("数据由",oval,"变化为",nval);
							console.log("num变化了:",this.num);
						}
					
				}
			})
		</script>
	</body>
</html>

4.实例化参数

el:"#app"
选择目标标签
data:{}
指定数据
data(){return {}}
一个函数返回一个对象

5.自定义指令directives

bind绑定执行一次
insert插入执行一次
update每更新执行一次


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<h1>自定义指令</h1>
			<p v-text="msg"></p>
			<input type="text" name="" id="" value="" v-focus="true" />
		</div>
		<script type="text/javascript">
			new Vue({
				el:"#app",
				data:{
					msg:"你好vue"
				},
				directives:{
					"focus":{
						//el指令所在的节点,binding指令相关的数据binding.value
						//获取指令所在的节点,执行第三方基于dom的插件
						inserted(el,binding){
							console.log(el,binding);
							el.focus();
						}
					}
				}
			})
		</script>
	</body>

6.过滤-管道 filters

格式化数据


使用
1.{{num|fix}}
2.{{num|fix(2)}}
3.v-text="num|fix"


filtres:{
fix(value,arg){
return value,toFixed(arg)
}
}
//保留两位小数

指令

指令的值是可以是简单的javascript命令

文本渲染指令 

 {{}}
    v-text
    v-html
(渲染html文本)

属性绑定

 v-bind:属性=“指令值”
    :属性=“值”


条件渲染

 频繁切换用v-show
一次性切换用v-if
v-show隐藏是通过css的方式隐藏节点
 

列表渲染

  v-for="item in list"

//list 要遍历的数组
// item 当前遍历的项目 

 v-for="item in list" 的
    v-for="(item,index)in  list"
//index 当前遍历项的索引 从0开始


事件指令

事件修饰符
.stop 阻止事件冒泡
.prevent 阻止默认事件
.once 只执行一次
@click.stop.once.prevent="num++"
事件的修饰符可以同时写多个


 

    按键修饰符

 .up
.down
.left
.right
.delete
.enter
.space
.esc

 事件对象

   Sevent     

表单绑定指令

    v-model
让表单的值与数据绑定在一起

 <input type="checkbox">
默认选中值是true
不选中值是false

 <input type="checkbox" name="fruit" v-model="list">
如果是多个把选中的值动态添加到list数组中

    修饰符

   .number 数学
.trim 移除两端空白

类绑定

 1.属性
:class="值"
    2.对象
当对象的属性值为真,该属性作为class绑定
:class="{'key1':true,'key2':false}"
key1的值为真,key1会被绑定,key2不会
    3.数组方式
:class=”[c1,c2,c3]“
样式绑定
    属性名去掉-下个字母大写
:style="{color:'red','fontSize':'48px'}"

8.动画

vue动画在内置组件transition中包裹会自动在动画的进入过程和离开过程添加类名


1.内置组件
name名称

mode:模式
in-out先进在出
out-in先出再进

enter-active-class
指定进入类名

leave-active-class
指定离开类名

transition-group

2.动画类
name-enter-active
进入过程

name-enter
进入前

name-enter-to
进入后

name-leave-active
离开过程

name-leave
离开前

name-leave-to
离开后

9.组件

定义:一段可以重复利用的代码块

1.全局组件

Vue.component("组件名".{template:``})

创建全局组件的代码如下:


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<h1>全局组件</h1>
			<btn></btn>
			<btn></btn>
			<btn></btn>
		</div>
		<script type="text/javascript">
		//定义一个全局的组件,名称是btn()
			Vue.component("btn",{
				//定义组件的模板上面3个btn互不干扰
				template:`<button @click="num++">{{num}}</button>`,
				//定义组件的data数据
				data(){return {num:1}}
			})
			var vm=new Vue({
				el:"#app",
				data:{
					n:10
				}
			})
			console.log(vm);
			//vm是根组件(最基础的)实例
		</script>
	</body>
</html>

2.局部组件

const steper={template:``}

3.注册组件

new Vue({
components:{steper}
})

4.使用组件

创建局部组件注册组件以及使用组件的代码如下:


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<!-- 重复使用 -->
			<p><steper></steper></p>
			<p><steper></steper></p>
			<p><steper></steper></p>
		</div>
		<script type="text/javascript">
			//定义组件
			//组件只能有且只有一个根节点
			const steper={
				// 局部组件的创建
				template:`
				<span>
				   <button @click="n--">-</button>
				   <input type="text" v-model.number="n"/>
				   <button @click="n++">+</button>
				</span>
				`,
				data(){return{n:1}
				}
			}
			new Vue({
				//注册组件
				components:{steper},
				el:"#app",
				
				
			})
		</script>
	</body>
</html>

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值