vue基本指令

what

jq是js框架
用起来方便。兼容性问题 。 代码简化
vue框架
用起来方便 是真方便

vue 将减少开发者在dom操作的精力(都不用管dom操作了,通过指令将元素和数据关联到一起)
将精力转移到数据操作
数据变页面变

实例
	new Vue({
	  el:'#app',//挂载
	  data:{},//存放数据
	  methods:{},//方法
	  computed:{},//计算属性
	  filter:{},//过滤器
	})
指令

内置指令 v- 开头
自定义指令
条件渲染 v-if v-else v-else-if
列表渲染 v-for
事件处理 v-on:eventname click dblclick …
组件
过滤器
计算属性
监听
axios

router
vuex
vue-cli
vue全家桶 vue-cli(脚手架工具) vuex(状态管理) axios(数据请求)router(路由)

vue内置指令
v-if 条件渲染
	<div id='app'>
		<p v-if='show'>我在这 if</p>
	    <p v-show='show'> 我在这  show</p>
	</div>
	let vm=new Vue({
		el:'#app',
		data:{
			show:false
		}
	})
	
		// v-if 条件渲染 根据参数的真假 来控制元素是否渲染 操作的是元素节点的增删  不经常切换
	    // v-show 根据参数的真假 来控制元素是否显示 控制display:none|block 使用于频繁切换显示隐藏 
v-for 用于遍历数组和对象
数组
	<div id='app'>
		<ul>
			<li v-for='(item,index) in list'>{{item}}--{{index}}</li>
		</ul>
	</div>
	let vm=new Vue({
		el:'#app',
		data:{
	      list:['爱情','动漫','恐怖','科幻']
		}
	})
	// v-for 列表渲染  绑定一个数据(数组或者对象)到元素上
	// 会根据数据循环创建元素
	// item 数组里的每一项  index 下标
对象
	<div id='app'>
		<ul>
			<li v-for="(val,key,index) in obj">{{key}}:{{val}}---{{index}}</li>
		</ul>
	</div>
	let vm=new Vue({
		el:'#app',
		data:{
	      obj:{name:'wangyi',age:16,sex:1,pass:456}
		}
	})
	//  遍历一个对象  val  值  key:键  index 下标
	//  关键字 in of 都可以
v-on 绑定事件 v-on:等同于@
	<div id='app'>
		<button v-on:click="test">点我</button>
	 	{{show}}
	 	<div v-show='show'>显示隐藏</div>
	</div>
	let vm=new Vue({
		el:'#app',
		data:{
	      show:false
		},
		methods:{
			// test:function(){
			// 	alert(111)
			// }
			// test:()=>{
			// 	alert(111)
			// }
			test(){
				this.show=!this.show
			}
		}
	})
v-bind 绑定属性 v-bind:等同于 :
	div{
	      width: 200px;
	      height: 100px;
	   }
	   .red{
	      background: red;
	   }
	   .green{
	      background: lightgreen;
	   }
	<div id='app'>
		  <div v-bind:class='state?"red":"green"'>
		     
		  </div>
		  <button @click="toggle">toggle</button>
	</div>
	let vm=new Vue({
		el:'#app',
		data:{
	      list:[1,2,3,4,5,6,7],
	      state:false
		},
		methods:{
	      toggle(){
	         this.state=!this.state
	      }
	 	}
	})
	// v-bind 绑定一个属性  这个属性的值就可以用data里的变量来表示
事件修饰符
阻止冒泡
	<div id="content">
	   <div @click.self="c1">
	   	这里是yy
	   	<div @click="c2">
	   		这里bb
	   		<div @click.stop="c3">
	   			这是son
	   		</div>
	   	</div>
	   </div>
	 </div>
	 let vm=new Vue({
		el:'#content',
		data:{
	
		},
		methods:{
		   c1(){
		   	console.log('点到爷爷')
		   },
		   c2(){
		   	console.log('点到爸爸')
		   },
		   c3(){
		   	console.log('点到son')
		   }
		}
	})
阻止浏览器的默认行为
	<div id="content">
	 	<form v-on:submit.prevent="onSubmit">
	 		<input type="text">
	 		<input type="text">
	 		<button>add</button>
	 	</form>
	 </div>
	let vm=new Vue({
		el:'#content',
		data:{
	
		},
		methods:{
			onSubmit(){
				console.log(111)
			}
		}
	})
键盘事件快捷键
	<div id="content">
	    <!-- <input type="text" v-on:keyup.37='enter'> -->
	     <!-- <input type="text" v-on:keyup.enter='enter'> -->
	      <!-- <input type="text" v-on:keyup.left='enter'> -->
	      <input type="text" v-on:keyup.haha='enter'> 
	 </div>
	Vue.config.keyCodes.enter = 13
	let vm=new Vue({
		el:'#content',
		data:{
		
		},
		methods:{
		   enter(){
		   	console.log(111)
		   }
		}
	})
vue实例的配置项
  • el
  • data
  • methods
  • computed
  • filters
  • components
组件
组件的创建与注册
	<div id='app'>
		<hehe></hehe>
	</div>
	// 第一种方法 先创建 再注册
 	// 组件就是vue的一个拓展实例
 	let component=Vue.extend({
 	 	template:'<h1>假装我是一个非常复杂的banner图</h1>'// 模板  这个组件的html元素
 	 })
    //注册组件
     Vue.component('hehe',component)
	   
	//  第二种方法 
	Vue.component("hehe",Vue.extend({
   	 	template:'<h1>假装我是一个非常复杂的banner图</h1>'// 模板  这个组件的html元素
   	 }))
	// 第三种方法 最简版 创建+注册
   Vue.component('hehe',{
 		template:'<h1>假装我是一个非常复杂的banner图</h1>'// 模板  这个组件的html元素
 	})
 	new Vue({
 		el:'#app',
 		data:{
 			test:11
 		}
 	})
 	// 创建组件 
	// 注册组件  全局组件和局部组件
	// 将组件作为标签使用
全局组件
	<div id='app'>
		//使用
		<hehe></hehe>
	</div>
	<hr>
	<div id='app1'>
		//使用
		<hehe></hehe>
	</div>
	//全局组件缩写 创建+注册
    Vue.component('hehe',{
 		template:'<h1>假装我是一个非常复杂的banner图</h1>'// 模板  这个组件的html元素
 	})
 	new Vue({
 		el:'#app',
 		data:{
 			test:11
 		}

 	})
	new Vue({
 		el:'#app1',
 		data:{
 			test:11
 		}
 	})
组件内的配置项
  • data

	<div id='app'>
		<hehe></hehe>
	</div>
 	// 组件就是vue的一个拓展实例
 	let component=Vue.extend({
 		template:'<h1>你好{{name}},我是李雷</h1>',// 模板  这个组件的html元素
 		data(){
 			return {
 				name:'韩梅梅'
 			}
 		}
 	})
    //注册全局组件
    Vue.component('hehe',component);
 	new Vue({
 		el:'#app',
 		data:{
 			test:11
 		}

 	})
 	// 组件内部的数据  可以绑定到组件内部的模板
	  // 组件的data数据格式不是对象而是一个函数,在函数的内部返回对象 让每一个组件都有自己单独的作用域
  • methods
  • filters
  • computed
  • watch
  • components 注册组件名时含有大写字母 使用时用-连接 大写改成小写
  • template 必须有根节点
使用vue

1.创建数据信息 数据源 数据
2.将元素和数据进行关联 通过指令
3.根据需求修改数据, 数据变页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值