Vue基础知识总结

小伙伴们大家好,最近呢我又学了亿丢丢vue,于是我就迫不及待的来总结一番啦!当然由于学的还只是vue的冰山一角,所以我就做个基础知识的总结吧!

目录

Vue概述

实例化参数(new Vue)

el选择目标标签

data指定数据

methods定义事件

computed计算

watch监听

direcives自定义指令

filers过滤|管道

Vue指令

文本渲染指令

属性绑定

条件渲染

列表渲染

事件指令 

总结:


Vue概述

提到vue就不得不提到它的特点了,它是由Angular和react两个的优点结合而成的,是一款渐进式javascript前端框架,作者就是我们华人的骄傲尤雨溪想了解他的详细资料请点下面链接:https://baike.baidu.com/item/%E5%B0%A4%E9%9B%A8%E6%BA%AA/2281470?fr=aladdin
vue的特点也有很多,比如简单,上手方便,结合Angular指令与react思维,生态丰富(插件多)ApI文档完善下面是vue的插件https://cn.vuejs.org/

实例化参数(new Vue)

el选择目标标签

如果你想要对某个标签使用vue或者对多个标签使用vue就必须选择它们的父元素,建议在html外包含一个大的div,例如:

<script src="vue.js"><script>
<div id="app">
	<p></p>
	<p></p>
	<p></p>
</div>
<script type="text/javascript">
	new Vue({
		el:"#app",
		})
</script>

data指定数据

里面所放的值是变量是可以根据操作随时更改的值,当然还有一些别的操作比如样式之类的也可以,示例如下:

<script src="vue.js"></script>
<body>
  <div id="app">
		<p>n1:{{n1}}</p>
		<p>n2:{{n2}}</p>
		<p>n3:{{n3}}</p>
   </div>
  <script type="text/javascript">
	new Vue({
		el:"#app",
		data:{
			n1:5,
			n2:10,
            n2:15,
			},
		})
  </script>
</body>

methods定义事件

在这里面你可以写你可执行的所有方法,还是比较遵循js的写法

<div id="app">
   <button @click="num++":disabled="num>=999">点击+1</button>
   <input type="text" v-model="num" @change="check()"/>
   <button @click="num--":disabled="num<=1">点击-1</button>
</div>
<script>
	 new Vue({
	   el:"#app",
	   data:{
			num:1,
		},
	   methods:{
		  check(){
			  if(isNaN(this.num)){this.num=1}
			  if(this.num>999){this.num=999}
			  if(this.num<1){this.num=1}
		},
     })
</script>

computed计算

计算就是根据现在的数据来计算出新的数据并返回,请看下列代码:
 

<div id="app">
	<h1>计算:从现有的数据计算出新的数据</h1>
	<p>n1:{{n1}} <input type="text" v-model.number="n1"/></p>
	<p>n2:{{n2}}</p>
	<p>n3:{{n3}}</p>
</div>
<script type="text/javascript">
	new Vue({
		el:"#app",
		data:{
			n1:5,
			n2:10,
	    },
		computed:{
			"n3":function(){
			     return this.n1+this.n2
			}
		}
})
</script>

watch监听

监听事件是可以监听数据的变化,并执行回调函数示例如下:

watch:{
"num":{
   handler(nval,oval){

        },
       deep:true
    }
}

num为监听的那个数据 oval是变化前的数据 nval为变化后的数据,deep:true是引用数据类型必加的,深度监听,不然无法监听到,基础数据类型则不需要

direcives自定义指令

自定义指令为你可以执行一些除vue不包含的方法都可以写在里面,有bind方法:绑定执行一次,insert方法:插入执行一次,update方法,每更新执行一次,现在我就拿update方法来示例一下:
 

 <input v-focus="flag">
 dirctives:{
    "v-focus":{
          update(el,binding){
          if(binding.value){el.focus()}
      }
}}

filers过滤|管道

主要用于格式化数据,对数据做些字符串操作来摘选字符串的某段数据处理并返回,简称过滤:

<div id="app">
   <p>{{num|fix}}</p>		
</div>
<script>
	new Vue({
		el:"#app",
	    data:{num:100},
		filters:{
	        fix(value,arg=2){
			return value.toFixed(arg)
		  },			
	 })
</script>

这样处理的优点就是十分方便,每个实例化参数都有自己的优点,搭配使用更加是效果翻倍

Vue指令

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

文本渲染指令

文本渲染指令有是三个分别为:{{}},v-text,v-html渲染html文本示例如下:

<div id="app">
    <p v-text="msg.repeat(3)"></p>
	<p v-text="msg2"></p><!-- 文本无法识别标签 -->
	<p v-html="msg2"></p>
</div>
<script>
  new Vue({
	el:"#app",
		data:{msg:"你好Vue!",
		  msg2:"<strong>中国</strong>是个好地方"
	  }
})
</script>

属性绑定

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

条件渲染

有v-if,v-else-if,v-else 方法 频繁切换用v-show,一次性切换用v-if, v-show隐藏是通过css的方式隐藏节点,如下列所示:

<div id="app">
			<p v-if="isLog">欢迎回来我的伙伴,退出</p>
			<p v-else>登录,注册</p>
			<p v-bind:title="title">{{msg}}</p>
			<p :title="title">{{msg}}</p>
			<input type="text" v-model="title"/><br>
			<button v-bind:disabled="flag">按钮</button>
			<h1>v-if 与v-show的区别</h1>
			<p v-if="flag2">我是v-if控制</p>
			<p v-show="flag2">我是v-show控制</p>
			<h1>v-else-if</h1>
			<p v-if="score>=90">优秀</p>
			<p v-else-if="score>=80">良好</p>
			<p v-else-if="score>=70">中等</p>
			<p v-else-if="score>=60">及格</p>
			<p v-else>不及格:你是个🐂🐎吧</p>
			<input type="text" v-model="score"/>
</div>
<script type="text/javascript">
		new Vue({
			el:"#app",
			data(){
				return{
					msg:"你好Vue!",
					title:"看见我的人,一生平安!",
					flag:false,
					isLog:false,
					flag2:false,
					score:75
					}
				}
			})
</script>

列表渲染

当然条件渲染还有个更厉害的方法 v-for=“(item,index) in list” 类似于克隆的这么一个方式,list是要遍历的数组,item为当前遍历的项目,index为下标 最好加上 :key值一般为index,但很多情况并不好用,建议使用其他方式为它增加 key作用主要为相当于id,有个辨识度如果一样的浏览器无法识别,两个就会互相影响,所以非常重要,如下列所示:

<div id="app">
	<p v-for="item in list">{{item}}</p>
	<p v-for="(item,index) in list">{{index+1}}-{{item}}</p>
	<!-- key优化vue的渲染(要求是唯一)推荐使用:key优化 -->
	<p v-for="(item,index) in list" :key="index">{{index+1}}-{{item}}</p>
	<h3  v-for="(item,index) in users" :key="item.name">
		姓名:{{item.name}},年龄:{{item.age}}
	</h3>
	<p v-for="item in 10">{{item}}</p>
</div>
<script type="text/javascript">
	new Vue({
	    el:"#app",
		data:{
			list:["vue","react","angular"],
			users:[
				{name:"小明",age:18},
				{name:"小刚",age:20},
				{name:"小飞",age:24}
				]
			}
	})
</script>

事件指令 

事件指令和js的几乎大同小异,都是对鼠标或者键盘的操作来做出相对的反应和执行回调函数
 v-on:事件类型=“响应函数” v-on:click="say()"就是事件指令的规范写法,当然还有一些事件修饰符
例如:.stop 阻止事件冒泡,.prevent 阻止默认事件,.once 只执行一次@click.stop.once.prevent="num++"事件的修饰符可以同时写多个
还有按键修饰符.up .down .left .right .delete .enter .space .esc这些都是与键盘按键相互照应的
还有事件对象:$evect 如下所示:

<div id="app">
	<button v-on:click="num++">{{num}}</button>
	<!-- @click是v-on:click的简写 -->
	<button @click="num+=5">{{num}}</button>
	<button @click="say(5)" >别说话,点我</button>
	<button @click="say(2)" >加2</button>
     <input
			type="text"
			v-model="num"
			@keyup.up="num++"
			@keyup.down="num--"
			@keyup.enter="list.unshift(num)"
			/>
	</div>
<script>
	new Vue({
		el:"#app",
		data:{
			num:1
			},
		methods:{
			say(n){
				//this当前new Vue出来的实例
				this.num+=n;//各自为营,点击第一个参数n=5,点击第二个参数n=2
				}
			}
		})
</script>

总结:

好了以上就是vue的基础知识,已经学会js的小伙伴们可以更快入手哦,当然没有学过js的小伙伴们也不要灰心,csdn里很多优秀的博客大神,只要经常去看看,学习一下,很快就能学会了,再来学习vue吧,好啦,再见了小伙伴们!我是梦魇,下次再见啦!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值