您的位置:首页 > Web前端 > Vue.js

vue基本指令

2018-12-12 23:03 190 查看

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.根据需求修改数据, 数据变页面

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: