认识vuejs

vuejs

vue是一个渐进式的框架
三种安装方式:
1、CDN引入
2、npm
3、直接下载引入

可以不用直接操作DOM元素实现响应式,创建vue实例,传递一个对象作为参数。

el属性绑定需要管理的元素,值可以是string或者html元素
data用来存放数据(对象或者函数),组件中data必须为函数,可以是服务器上的,也可以是自定义。
methods表示定义的方法

vue的MVVM

model相当于数据层,view是DOM层,viewmodel相当于创建的vue实例

vue的生命周期

new一个vue实例的时候,其实内部做了一系列复杂的事情,当内部做到某个阶段时,会执行相应的回调函数

vue插值指令

0、mustache语法 只能写在元素内容中

1、v-once
该指令后面不需要跟任何表达式;其表示元素和组件只渲染一次,不会随着数据的改变而改变。

//2、v-for

<li v-for="item in movies">{{item}}</li>
const app = new Vue({
	el:'#app',
	data:{
		message:'你好',
		movies:['海王','盗梦空间','少年派','星际穿越']
	}        
})

//3、v-on
情况一:如果该方法不需要额外参数,方法后可以不加括号
函数需要参数,但是没有传入,则函数的形参将会是undefined
情况二:该方法需要参数,但是省略了小括号,这时会默认将浏览器生成的event事件对象作为参数传进参数中
情况三:除了event参数,还需要其他参数,通过$event可以手动获取到event事件对象。如果不加 $event ,则会默认第一个参数为event事件对象

<button v-on:click="add">+</button>
const app = new Vue({
	el:'#app',
	data:{
	counter:0},
	methods:{
	add:function(){
		this.counter++;}
		}        
	})

v-on的常见修饰符
.stop:相当于阻止事件冒泡 调用event.stopPropagation
.prevent:相当于阻止默认行为 调用event.preventDefault
.once:只触发一次回调函数
.keycode:当特定键触发时回调函数调用,如@keyup.enter = “keyUp”

4、v-html
将文本以html格式解析并显示

<div v-html="url"></div>
const app = new Vue({
	el:'#app',
	data:{
	message:'你好',
	url:'<a href="http://www.baidu.com">百度一下</a>'
	} 
})

5、v-text
类似mustache语法 展示文本内容,但是使用并不方便灵活,不能显示其他文本内容。会覆盖掉

<div id="app" v-text="message"></div>

6、v-pre
把标签内的东西原封不动的显示出来,不做任何解析

<div id="app">{{message}}</div> //你好
<div id="app" v-pre>{{message}}</div> //{{message}}

7、v-cloak
在vue解析前,元素中有一个v-cloak属性
当vue解析之后,会将v-cloak属性删除

v-bind

v-bind用于绑定一个或者多个属性值,或者向另一个组件传递props值
1、动态绑定属性,比如a标签的href属性、img标签的src属性

<img v-bind:src="imgURL" alt="">
<img :src="imgURL" alt="">

语法糖:

2、动态绑定class
对象语法
class后面跟着包含键值对的对象,键是类名,属性是true或者false,最后会将所有为true的类显示出来。而且绑定的class和普通class是可以共存的

如果isActive为true,isLine为false,则最终显示为 class=“title active”

<h2 class="title" v-bind:class='{active:isActive,line:isLine}'>你好吗</h2>

数组语法

<h2 class="title" :class="['active','line']">{{message}}</h2>
//可以写死成字符串的类,也可以写成变量,动态响应,而且与普通class也不冲突
<h2 class="title" :class="[active,line]">{{message}}</h2>

3、动态绑定style
对象语法
style后面跟一个对象,key是css属性名,value是对应属性的值,值可以来自data中的属性。

<h2 :style="{fontSize:finalSize +'px'}">{{message}}</h2>

数组语法
数组内是定义的一个个变量,变量对应的创建的对象

计算属性

1、基本用法
computed内所定义的对象相当于属性,可以直接拿来用

<h2>{{fullName}}</h2>
computed:{ 
	fullName:function(){
	return this.name +' '+this.message;
}

2、复杂用法
computed属性中的set、get方法,但是computed一般不会有set方法,所以为只读属性。
下面是完整写法,为了省略可以只写get方法,如下第二种,所以当直接使用属性fullName时,相当于调用的get方法

computed:{
	fullName:{
	set:function(newValue){
	const names = newValue.split(' ');
	this.firstName = names[0]
	this.lastName = names[1] 
	},
	get:function(){
	return this.firstName + " " + this.lastName
		}	
	}
}


computed:{ 
 fullName:function(){
 return this.name +' '+this.message;
}

methods与computed的区别:计算属性会在内部进行缓存,如果多次调用,计算属性只会调用一次。若内部的值发生改变,将会清空之前的缓存,重新调用一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值