1. Vue的基础代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
</head>
<body>
<!--用 Vue new出来的实例会控制这个元素-->
<!-- Vue 实例所控制的区域就是 MVVM 的V-->
<!--new 出来的vm就是MVVM 中的VM ,其中的调度这-->
<div id="app">
<P>{{msg}}</P>
</div>
<script>
//2.创建一个Vue实例
//当我们带入包之后,在浏览器内存中就多了一个Vue构造函数
var vm =new Vue(
{
el:'#app', //表示我们这new的这个Vue要控制的区域
// MVVM 中的M 用来保存数据
data :{
msg:'欢迎学习Vue' //通过Vue的指令,直接把数据渲染到页面上,不在手动操作DON元素
}
}
)
</script>
</body>
</html>
2. c-cloak、c-text、c-html介绍.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/* 解决闪烁问题 */
[v-cloak] {
display:none;
}
</style>
</head>
<body>
<div id="app">
<p v-cloak>1111{{msg}}1111</p> <!-- 不会覆盖元素中的内容 -->
<h4 v-text="msg">123123</h4> <!-- 会覆盖元素中的123123 -->
<p v-cloak>1111{{msg2}}1111</p> <!-- 不会覆盖元素中的内容 , 只会当做是一个文本-->
<h4 v-text="msg2">123123</h4> <!-- 会覆盖元素中的123123 ,只会当做是一个文本 -->
<h1 v-html="msg2"></h1> <!--会当做是一个html的标签输出-->
<!--v-bind: 吧mytitle当做一个变量,用于绑定Vue中提供与绑定属性的指令 可以直接写成: 也可以在其中写入合法的js表达式-->
<input type="button" value="按钮" v-bind:title="mytitle" v-on:click="show"> <!--可以直接把v-on:写成@-->
</div>
<script src="lib/vue.js"></script>
<script>
var vm = new Vue({
el:'#app',
data:{
msg:'123',
msg2:'<h1>我是一个H1</h1>',
mytitle: '这是一个自己定义的title'
},
methods:{ //在这个属性中定义了当前Vue实例所有可用的方法
show:function(){
alert('HELLO')
}
}
})
</script>
</body>
</html>
3. 走马灯页面效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
</head>
<body>
<!-- 要控制的元素-->
<div id="app">
<input type="button" value="嘚瑟起来" @click="start">
<input type="button" value="停" @click="stop">
<h1>{{ msg }}</h1>
</div>
<script>
var vm =new Vue({
el:'#app',
data:{
msg:'猥琐发育,别浪--',
intervalid:null
},
methods:{
start(){
if(this.intervalid!=null) return;
/* => 使内部的this指向外部的vn的this*/
this.intervalid = setInterval(() =>{
//console.log(this.msg) /*在VM实例中想要获取data上的数据或者想要调用methods中的方法,必须通过this. 来获取或调用*/
var st =this.msg.substring(0,1)
var end =this.msg.substring(1)
this.msg =end + st
},400)
//注意:vm实例会检讨自己身上的data中的所有数据的改变,只要数据变化就会自动把数据更新倒也没上去
},
stop(){
clearInterval(this.intervalid)
this.intervalid =null
}
}
})
</script>
</body>
</html>
4. 事件修饰符的使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
<style>
.inner{
height: 150px;
background-color: blue
}
</style>
</head>
<body>
<div id ="app">
<div class="inner" @click.self="bivHandler">
<!--可以连接到一起使用-->
<!-- <div class="inner" @click.onec="bivHandler"> .once 只触发一次事件-->
<!-- <div class="inner" @click.self="bivHandler"> .selt 只有点击当前元素才会触发事件-->
<!-- <div class="inner" @click.capture="bivHandler"> .capture 实现捕获事件的触发机制 --> .
<!-- <a href="https://123.sogou.com/?121033" @click.prevent="LinkClick">搜搜</a> 阻止默认行为 -->
<!-- <input type="button" value ="使劲戳" @click.stop="btnHandler"> .stop 修饰符 阻止冒泡 -->
<input type="button" value ="使劲戳" @click="btnHandler">
<h4>{{msg}}</h4>
<input type="text" value ="使劲戳" @click="btnHandler" v-model="msg"> <!--v-model 数据双向绑定 互相改变 ,不加model的只能从代码改变页面无法逆向改变-->
</div>
</div>
<script>
var vn=new Vue({
el:'#app',
data:{
msg:'hello'
},
methods:{
bivHandler(){
console.log("这是DIV")
},
btnHandler(){
console.log("这是button")
},
LinkClick(){
console.log("这是a")
}
}
})
</script>
</body>
</html>