⽬标
:
把
value
属性和
vue
数据变量
,
双向绑定到⼀起
语法
: v-model="vue
数据变量
"
双向数据绑定
数据变化
->
视图⾃动同步
视图变化
->
数据⾃动同步
演⽰
:
⽤户名绑定
- vue
内部是
MVVM
设计模式
<template>
<div>
<h1>
{{ message }}
</h1>
<button
@click
=
"btn"
>
逆转世界
</button>
</div>
</template>
<script>
export default
{
data
() {
return
{
message
:
"HELLO, WORLD"
,
};
},
methods
: {
btn
(){
this
.
message
=
this
.
message
.
split
(
""
).
reverse
().
join
(
""
)
}
}
};
</script>
<template>
<div>
<!--
v-model:
是实现
vuejs
变量和表单标签
value
属性
,
双向绑定的指令
-->
<div>
<span>
⽤户名
:
</span>
<input
type
=
"text"
v-model
=
"username"
/>
</div>
<div>
<span>
密码
:
</span>
<input
type
=
"password"
v-model
=
"pass"
/>
</div>
<div>
<span>
来⾃于
:
</span>
<!--
下拉菜单要绑定在
select
上
-->
<select
v-model
=
"from"
>
<option
value
=
"
北京市
"
>
北京
</option>
<option
value
=
"
南京市
"
>
南京
</option>
<option
value
=
"
天津市
"
>
天津
</option>
</select>
</div>
<div>
<!-- (
重要
)
遇到复选框
, v-model
的变量值
⾮数组
-
关联的是复选框的
checked
属性
数组
-
关联的是复选框的
value
属性
-->
<span>
爱好
:
</span>
<input
type
=
"checkbox"
v-model
=
"hobby"
value
=
"
抽烟
"
>
抽烟
<input
type
=
"checkbox"
v-model
=
"hobby"
value
=
"
喝酒
"
>
喝酒
<input
type
=
"checkbox"
v-model
=
"hobby"
value
=
"
写代码
"
>
写代码
</div>
<div>
<span>
性别
:
</span>
<input
type
=
"radio"
value
=
"
男
"
name
=
"sex"
v-model
=
"gender"
>
男
<input
type
=
"radio"
value
=
"
⼥
"
name
=
"sex"
v-model
=
"gender"
>
⼥
</div>
<div>
<span>
⾃我介绍
</span>
<textarea
v-model
=
"intro"
></textarea>
</div>
</div>
</template>
<script>
export default
{
data
() {
return
{
username
:
""
,
pass
:
""
,
from
:
""
,
hobby
: [],
sex
:
""
,
intro
:
""
,
};
//
总结
:
//
特别注意
: v-model,
在
input[checkbox]
的多选框状态
//
变量为⾮数组
,
则绑定的是
checked
的属性
(true/false) -
常⽤于
:
单个绑定使⽤
//
变量为数组
,
则绑定的是他们的
value
属性⾥的值
-
常⽤于
:
收集勾选了哪些值
}
};
</script>
总结
:
本阶段
v-model
只能⽤在表单元素上
,
以后学组件后讲
v-model
⾼级⽤法
7、vue
指令
v-model
⽬标
:
把
value
属性和
vue
数据变量
,
双向绑定到⼀起
语法
: v-model="vue
数据变量
"
双向数据绑定
数据变化
->
视图⾃动同步
视图变化
->
数据⾃动同步
演⽰
:
⽤户名绑定
- vue
内部是
MVVM
设计模式
<template>
<div>
<h1>
{{ message }}
</h1>
<button
@click
=
"btn"
>
逆转世界
</button>
</div>
</template>
<script>
export default
{
data
() {
return
{
message
:
"HELLO, WORLD"
,
};
},
methods
: {
btn
(){
this
.
message
=
this
.
message
.
split
(
""
).
reverse
().
join
(
""
)
}
}
};
</script>
<template>
<div>
<!--
v-model:
是实现
vuejs
变量和表单标签
value
属性
,
双向绑定的指令
-->
<div>
<span>
⽤户名
:
</span>
<input
type
=
"text"
v-model
=
"username"
/>
</div>
<div>
<span>
密码
:
</span>
<input
type
=
"password"
v-model
=
"pass"
/>
</div>
<div>
<span>
来⾃于
:
</span>
<!--
下拉菜单要绑定在
select
上
-->
<select
v-model
=
"from"
>
<option
value
=
"
北京市
"
>
北京
</option>
<option
value
=
"
南京市
"
>
南京
</option>
<option
value
=
"
天津市
"
>
天津
</option>
</select>
</div>
<div>
<!-- (
重要
)
遇到复选框
, v-model
的变量值
⾮数组
-
关联的是复选框的
checked
属性
数组
-
关联的是复选框的
value
属性
-->
<span>
爱好
:
</span>
<input
type
=
"checkbox"
v-model
=
"hobby"
value
=
"
抽烟
"
>
抽烟
<input
type
=
"checkbox"
v-model
=
"hobby"
value
=
"
喝酒
"
>
喝酒
<input
type
=
"checkbox"
v-model
=
"hobby"
value
=
"
写代码
"
>
写代码
</div>
<div>
<span>
性别
:
</span>
<input
type
=
"radio"
value
=
"
男
"
name
=
"sex"
v-model
=
"gender"
>
男
<input
type
=
"radio"
value
=
"
⼥
"
name
=
"sex"
v-model
=
"gender"
>
⼥
</div>
<div>
<span>
⾃我介绍
</span>
<textarea
v-model
=
"intro"
></textarea>
</div>
</div>
</template>
<script>
export default
{
data
() {
return
{
username
:
""
,
pass
:
""
,
from
:
""
,
hobby
: [],
sex
:
""
,
intro
:
""
,
};
//
总结
:
//
特别注意
: v-model,
在
input[checkbox]
的多选框状态
//
变量为⾮数组
,
则绑定的是
checked
的属性
(true/false) -
常⽤于
:
单个绑定使⽤
//
变量为数组
,
则绑定的是他们的
value
属性⾥的值
-
常⽤于
:
收集勾选了哪些值
}
};
</script>
总结
:
本阶段
v-model
只能⽤在表单元素上
,
以后学组件后讲
v-model
⾼级⽤法
8、vue指令 v-model修饰符
_vue指令 v-model修饰符
⽬标: 让v-model拥有更强⼤的功能
语法:
- v-model.修饰符="vue数据变量"
- .number 以parseFloat转成数字类型
- .trim 去除⾸尾空⽩字符
- .lazy 在change时触发⽽⾮inupt时
</script>
<template>
<div>
<div>
<span>
年龄
:
</span>
<input
type
=
"text"
v-model.number
=
"age"
>
</div>
<div>
<span>
⼈⽣格⾔
:
</span>
<input
type
=
"text"
v-model.trim
=
"motto"
>
</div>
<div>
<span>
⾃我介绍
:
</span>
<textarea
v-model.lazy
=
"intro"
></textarea>
</div>
</div>
</template>
<script>
export default
{
data
() {
return
{
age
:
""
,
motto
:
""
,
intro
:
""
</script>
总结: v-model修饰符, 可以对值进⾏预处理, ⾮常⾼效好⽤
9、vue指令 v-text和v-html
⽬的: 更新DOM对象的innerText/innerHTML
语法
:
- v-text="vue数据变量"
- v-html="vue数据变量"
- 注意: 会覆盖插值表达式
</script>
<template>
<div>
<p
v-text
=
"str"
></p>
<p
v-html
=
"str"
></p>
</div>
</template>
<script>
export default
{
data
() {
return
{
str
:
"<span>
我是⼀个
span
标签
</span>"
}
}
}
</script>
总结
: v-text
把值当成普通字符串显⽰
, v-html
把值当做
html
解析
10、_vue指令 v-show和v-if
⽬标
:
控制标签的隐藏或出现
语法:
- v-show="vue变量"
- v-if="vue变量"
- 原理
- v-show ⽤的display:none隐藏 (频繁切换使⽤)
v-else使⽤
<template>
<div>
<h1
v-show
=
"isOk"
>
v-show
的盒⼦
</h1>
<h1
v-if
=
"isOk"
>
v-if
的盒⼦
</h1>
<div>
<p
v-if
=
"age > 18"
>
我成年了
</p>
<p
v-else
>
还得多吃饭
</p>
</div>
</div>
</template>
<script>
export default
{
data
() {
return
{
isOk
:
true
,
age
:
15
}
}
}
</script>
总结
:
使⽤
v-show
和
v-if
以及
v-else
指令
,
⽅便通过变量控制⼀套标签出现
/
隐藏