vue基础之命令
一什么是Vue
Vue是一个构建用户界面的JAVASCRITPO框架。
二怎样使用Vue
1.引入vue.js
<script src="vue.js"></script>
2.展示HTML
<div id="app">
<input type="text" v-model="msg">
<p>{{msg}}</p>
</div>
3.建立vue对象
new Vue({
el: "#app", //表示在当前这个元素内开始使用VUE
data:{
msg: ""
}
})
三在元素中插入值
{{}},里面可以放表达式
指令:是带有V-前缀的特殊属性,通过属性来操作元素
v-text:在元素当中插入值
v-html:在元素不中不仅可以插入文本,还可以插入标签
v-if: 根据表达式的真假值来动态插入和移除元素
v-show:根据表达式的真假值来隐藏和显示元素
v-for:根据变量的值来循环渲染元素
v-on:监听元素事件,并执行相应的操作
对数组的操作:
push
pop
shift
unshift
splice
reverse
v-bind:绑定元素的属性来执行相应的操作
v-model:实现了数据和视图的双向绑定
分成了3步:
1)把元素的值和数据相绑定
2)当输入内容时,数据同步发生变化,视图 ---数据的驱动
3)当改变数据时,输入内容也会发生变化,数据-》视图的驱动
1. v-html动态生成html标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
</head>
<style>
ul li{
list-style: none;
}
</style>
<body>
<div id="app">
<ul>
<li>
<input type="checkbox">苹果
</li>
<li>
<input type="checkbox">香蕉
</li>
<li>
<input type="checkbox">葡萄
</li>
<li>
<input type="checkbox" v-on:click="create()">其它
</li>
<li v-html="htmlstr" v-show="test"></li>
</ul>
</div>
<script>
var vm = new Vue({
el: "#app",//表示在当前这个元素内开始使用VUE
data:{
htmlstr:"<textarea></textarea>",
test:false
},
methods:{
create:function () {
this.test=!this.test;
}
}
})
</script>
</body>
</html>
<!--动态生成HTML-->
<!--
小知识点:去掉li标签前面的小点,list-style=none
复选框:type="checkbox"
v-html="htmlstr"在元素不中不仅可以插入文本,还可以插入标签,动态生成HTML标签
v-show:根据表达式的真假值来隐藏和显示元素
-->
2 . v-model
<!--双向绑定-->
<!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" v-model="msg">
<p>{{msg}}</p>
</div>
<script>
new Vue({
el:"#app",//表示在当前这个元素内开始使用Vue
data:{
msg:""
}
})
</script>
</body>
</html>
<!--
v-model:实现了数据和视图的双向绑定
分成了3步:
1)把元素的值和数据相绑定
2)当输入内容时,数据同步发生变化,视图 ---数据的驱动
3)当改变数据时,输入内容也会发生变化,数据-》视图的驱动
-->
v-on
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
<style>
ul li{
list-style: none;
display: inline-block;
border: 1px solid cornflowerblue;
height:40px;
line-height: 40px;
width: 120px;
text-align: center;
}
</style>
</head>
<body>
<div id="mybox">
<ul>
<li>
<span v-on:click="qh(true)">二唯码登录</span>
</li>
<li>
<span v-on:click="qh(false)">邮箱登录</span>
</li>
</ul>
<div v-show="temp">
<img src="erma.jpg">
</div>
<div v-show="!temp">
<form action="http://mail.163.com" method="post">
<p><input type="email"></p>
<p><input type="password"></p>
<p><input type="submit" value="登录"></p>
</form>
</div>
</div>
<script>
new Vue({
el: "#mybox",
data: {
temp: true
},
methods: {
qh: function (t) {
this.temp = t
}
}
})
</script>
</body>
</html>
v-for
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
<style>
ul li{
list-style: none;
}
</style>
</head>
<body>
<div id="app">
<ul>
<li v-for="(item,index1) in aaa">
{{item}}:{{index1}}
</li>
</ul>
<ul>
<li v-for="item1 in ccc">
{{item1.username}}
{{item1.age}}
{{item1.sex}}
</li>
</ul>
<ul>
<li v-for="(item3,key,index) in bbb">
{{item3}}:{{key}}:{{index}}
</li>
</ul>
<input type="button" value="点我吧" @click="show()">
<a :href="url">我想去百度</a>
</div>
<script>
new Vue({
el:"#app",//表示在当前这个元素内开始使用VUE
data:{
aaa:[11,22,33,44,55],
bbb:{a:"刘能",b:"赵四",c:"谢广坤",d:"谢大脚",e:"王老七"},
ccc:[
{username:"长贵"},
{age:20},
{sex:"male"}
],
str:"亲爱的,我来了",
url:"http://www.baidu.com"
},
methods:{
show:function () {
this.aaa.pop()
}
}
})
</script>
</body>
</html>
<!--
v-for:根据变量的值来循环渲染元素
-->
v-if ,v-else,v-show
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<p v-if="aaa">我是斯蒂芬库里</p>
<p v-else>我是凯文杜兰特</p>
<p v-show="bbb">我是泽勒卡戴珊</p>
<p v-show="ok" style="color: aqua">你们喜欢我吗?</p>
</div>
<script>
var vm = new Vue({
el:"#app",
data:{
aaa:true,
bbb:true,
ok:true
}
})
window.setInterval(function () {
vm.ok = !vm.ok;
},500)
</script>
</body>
</html>
<!--
v-if: 根据表达式的真假值来动态插入和移除元素,当然有if的情况下就必须有else
v-show:根据表达式的真假值来隐藏和显示元素
-->
<!--
window.setInterval(function () {
vm.ok = !vm.ok;
},500)
用来做时间间隔的
-->
v-model
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
<style>
ul li{
list-style: none;
}
</style>
</head>
<body>
<div id="app">
<input v-model="msg">
<p>{{msg}}</p>
<input type="button" value="变化" @click="change">
</div>
<script>
new Vue({
el: "#app", //表示在当前这个元素内开始使用VUE
data:{
msg: "aaaaa"
},
methods: {
change: function () {
this.msg = 8888888;
}
}
})
</script>
</body>
</html>
<!--
v-model双向绑定还可以改变数据
-->
模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<p>{{msg}}</p>
<p>{{80+2}}</p>
<p>{{20>30}}</p>
{{msg}}
我是:<h1 v-text="msg">{{str}}</h1>
你是:<h1 v-text="msg">2222222222222</h1>
<h2 v-html="hd"></h2>
<h2 v-html="str"></h2>
</div>
<script>
new Vue({
el: "#app", //表示在当前这个元素内开始使用VUE
data:{
msg: "我是老大",
hd: "<input type='button' value='你是小三'>",
str: "我要发财!"
}
})
</script>
</body>
</html>
V-HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<p>{{msg}}</p>
<p>{{80+2}}</p>
<p>{{20>30}}</p>
{{msg}}
我是:<h1 v-text="msg">{{str}}</h1>
你是:<h1 v-text="msg">2222222222222</h1>
<h2 v-html="hd"></h2>
<h2 v-html="str"></h2>
</div>
<script>
new Vue({
el: "#app", //表示在当前这个元素内开始使用VUE
data:{
msg: "我是老大",
hd: "<input type='button' value='你是小三'>",
str: "我要发财!"
}
})
</script>
</body>
</html>

浙公网安备 33010602011771号