Vue下载及安装
阿伟的第一个vue代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
<style>
[v-cloak]{
display: none;
}
</style>
</head>
<body>
<div id="app">
<!-- 使用 v-cloak 能够解决插值表达式的闪烁问题 -->
<p v-cloak>+++++++++++++++{{ msg }}</p>
<h4 v-text="msg">=============</h4>
<!-- 默认 v-text 是没有闪烁问题的,会覆盖元素中原本的内容,但插值表达式只会替换自己的占位符,不会把整个元素的内容清空 -->
<div v-text="msg2"></div>
<!-- v-html 会将文本解析成html,也会覆盖原本的内容 -->
<div v-html="msg2"></div>
<!-- v-bind 是vue中,提供的用于绑定属性的指令 -->
<input type="button" value="按钮" v-bind:title="mytitle + '123'">
<!-- v-bind 简写形式-->
<input type="button" value="按钮" :title="mytitle + '123'">
<!-- v-on:事件绑定机制 -->
<input type="button" value="按钮" v-on:click="show">
<!-- v-on 简写形式 -->
<input type="button" value="按钮" @click="show">
</div>
<script>
var vm=new Vue({
el:'#app',
data:{
msg:'欢迎学习Vue',
msg2:'<h1>哈哈哈哈哈哈哈哈哈</h1>',
mytitle:'这是一个自己定义的title'
},
methods:{//methods中定义了当前vue实例所有可用的方法
show:function () {
alert('hello')
}
}
})
</script>
</body>
</html>
阿伟的第二个代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<ul>
<!-- 循环-->
<li v-for="dog in dogs"> {{dog}} </li>
<!-- 带索引的循环,注意参数的顺序是(value,key)-->
<li v-for="(dog,i) in dogs">{{ dog }} 是第 {{i}} 个</li>
</ul>
<hr>
<ul>
<!-- 输出1-10-->
<li v-for="n in 10"> {{n}} </li>
<!-- 输出0-9-->
<li v-for="n in 10"> {{n-1}} </li>
</ul>
<hr>
<p>自从你打开这个页面,已经过了 {{seconds}} 秒。</p>
<hr>
<!--双向数据绑定 用 v-model !!! -->
<input type="text" v-model="inputText">
<p>inputText: {{ inputText }}</p>
</div>
<script>
new Vue({
el:'#app',
data: {
dogs: ['a','b','c','d'],
seconds:0,
inputText:'initial value'
},
created(){
setInterval(()=>{
this.seconds++;
},1000);
}
});
</script>
</body>
</html>
阿伟的第三个代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" :value="inputText" value="initial value">
<p>inputText: {{ inputText }}</p>
<hr>
<label><input type="radio" v-model="value" value="一">一</label>
<label><input type="radio" v-model="value" value="二">二</label>
<label><input type="radio" v-model="value" value="三">三</label>
<p>选中的 value 值为 {{value}}</p>
<hr>
<ul>
<li v-for="number in filterPositive(numbers)"> {{ number }} </li>
</ul>
</div>
<script>
new Vue({
el:'#app',
data: {
inputText:'',
value:'一',
numbers:[-5,0,2,-1,1,0,5]
},
methods:{
//过滤掉所有负数
filterPositive(numbers){
return numbers.filter((number) => number >= 0);
}
}
});
</script>
</body>
</html>