vue_day01
Vue_day01
1. 认识vue
1.1 什么是vue
(1)Vue是构建界面的渐进式的js框架
(2)只关注视图层, 采用自底向上增量开发的设计。
(3)Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 --数据双向绑定
一句话:vue就是做界面的js框架 (jquery/easyui)
1.2vue怎么使用
(1)在项目里面 运行 npm install vue
(2)在页面引入vue.js
<script type="text/javascript" src="node_modules/vue/dist/vue.js"></script>
(3)测试代码
<body>
<div id="app">
{{name}}
</div>
<script>
new Vue({
el:"#app",
data:{
name:"xxxx"
}
});
</script>
1.3 el挂载
el:挂载,把vue这个对象 挂载到对应的标签上面去
el方式:
(1)id的方式进行挂载
<body>
<div id="app">
{{name}}
</div>
<script>
new Vue({
el:"#app",
data:{
name:"xxxx"
}
});
</script>
(2) class方法进行挂载
<body>
<div class="app">
{{name}}
</div>
<script>
new Vue({
el:".app",
data:{
name:"xxxx"
}
});
</script>
1.4 data数据
data:放字符串 对象 和数组 都OK
data: {
"show": true,
"hidden": false,
"score": 66
}
1.5 methods方法
方法methods:
methods:{
changeData(){
console.log(this.msg);
}
}
1.6 vue的生命周期
1.7 数据的双向绑定
<body>
<div id="app">
<input type="text" v-model="msg" v-on:change="changeData"/>
<div>
{{msg}}
</div>
</div>
</body>
<script>
var app = new Vue({
el: "#app",
data: {
name: "信息",
msg: "test"
},
methods:{
changeData(){
console.log(this.msg);
}
}
});
</script>
2.vue指令
2.1 v-for
循环
<body>
<div id="app">
循环数组
<ul>
<li v-for="hobby in hobbys">
{{hobby}}
</li>
</ul>
<hr>
循环对象
<ul>
<li v-for="u in user">
{{u}}
</li>
</ul>
<hr/>
带索引循环数组
<ul>
<li v-for="(hobby,index) in hobbys">
{{hobby}}==={{index}}
</li>
</ul>
<hr/>
循环对象
<ul>
<li v-for="(value, key, index) in user">
{{key}} == {{value}} ---> {{index}}
</li>
</ul> <hr/>
循环json数据
<table>
<thead>
<tr>id</tr>
<tr>name</tr>
<tr>age</tr>
<tr>sex</tr>
</thead>
<tbody>
<tr v-for="student in students">
<td>{{student.id}}</td>
<td>{{student.name}}</td>
<td>{{student.age}}</td>
<td>{{student.sex}}</td>
</tr>
</tbody>
</table>
</div>
</body>
<script>
var app = new Vue({
el:"#app",
data: {
user: {
name: "德莱文",
age: 18,
sex: "男"
},
hobbys: ["打篮球", "踢足球", "打羽毛球"],
students: [
{id: 1, name: "刘备", age: 29, sex: "男"},
{id: 2, name: "貂蝉", age: 30, sex: "女"},
{id: 3, name: "吕布", age: 31, sex: "男"}
]
}
});
</script>
2.2 v-bind
绑定的标签里面属性的值
<body>
<div id="app">
<img width="100" src="img/11.jpg"/>
<img width="100" v-bind:src="imgSrc">
<img width="100" :src="imgSrc"/>
<input type="text" name="username"/>
<input v-bind="props"/>
</div>
</body>
<script>
var app = new Vue({
el: "#app",
data: {
imgSrc:"img/11.jpg",
props:{
type:"text",
name: "username"
}
}
});
</script>
2.3 v-show
控制display这个属性
<body>
<div id="app">
<div v-show="show">show show show ...</div>
<div v-show="hidden">hidden hidden hidden...</div>
<div v-show="score > 80">if if if</div>
</div>
</body>
<script>
var app = new Vue({
el: "#app",
data: {
"show":true,
"hidden":false,
"score":66
}
});
</script>
2.4 v-if/else
如果不成立 ,在页面无法看到
<body>
<div id="app">
<div v-if="age , 18">你还年轻,还可以玩一下</div>
<div v-else-if="age > 20 && age < 60">小伙子,我这里有一本java的秘籍要不要看一看?</div>
<div v-else>
可以退休啦~~
</div>
</div>
</body>
<script>
var app = new Vue({
el: "#app",
data: {
"show": true,
"hidden": false,
"score": 66
}
});
</script>
2.5 v-model
控制标签里面value 完成双向绑定
<body>
<div id="app">
绑定普通的字符串值
<input v-model="inputValue" />
{{inputValue}} <h1>绑定到type=checkbox的input表单元素</h1>
打篮球:<input type="checkbox" v-model="checkboxValue" value="打篮球"><br/>
踢足球:<input type="checkbox" v-model="checkboxValue" value="踢足球"><br/>
data中的值:{{checkboxValue}} <h1>绑定到type=radio的input表单元素</h1>
打篮球:<input type="radio" v-model="radioValue" value="打篮球"><br/>
踢足球:<input type="radio" v-model="radioValue" value="踢足球"><br/>
data中的值:{{radioValue}} <h1>绑定到文本域的值</h1>
<textarea v-model="textAreaValue"></textarea>
data中的值:{{textAreaValue}} 下拉的值
<select v-model="skills">
<option value="rap">rap</option>
<option value="唱">唱</option>
<option value="跳">跳</option>
</select>
{{skills}}>
</div>
</body>
<script>
var app = new Vue({
el: "#app",
data: {
inputValue:"输入的text值",
checkboxValue:["踢足球"],
radioValue:"打篮球",
textAreaValue: "溜了溜了...",
sills:"唱" }
});
</script>
vue_day01的更多相关文章
随机推荐
- DjangoBBS项目功能拆分
目录 1.随机验证码 2.注册功能 3.登录功能 4.登录认证装饰器配置 5.修改密码模态框方法 6.修改头像 7.修改签名模态框方法 8.注销功能模态框 9.用户上传静态文件配置 10.图片防盗链 ...
- 安卓开发实战-记账本APP(五)
今天将昨天剩余的bug修复,并且完成图标的美化,设置长按删除,模仿支付宝实现金额的动态增加. ①将昨天的布局进行了修改:之前是fragment,改成FrameLayout布局,不再设置name,进而在 ...
- Spring-cloud微服务实战【八】:API网关zuul
在前面的文章中,我们先后使用了eureka/ribbon/feign/hystrix搭建了一个看似完美的微服务了,那是否还有值得继续优化的地方呢?答案肯定是有的,如果从整个微服务内部来看,基本已经 ...
- 小程序图片 mode 设置为 widthFix 图片显示瞬间竖向拉伸变形闪烁
官方文档中 mode="widthFix" 宽度不变,高度自动变化,保持原图宽高比不变,即设置图片宽度而高度自适应. 但是在实际开发中发现图片在初始加载时瞬间竖向拉伸变形闪烁然 ...
- kubernetes中node心跳处理逻辑分析
最近在查看一个kubernetes集群中node not ready的奇怪现象,顺便阅读了一下kubernetes kube-controller-manager中管理node健康状态的组件node ...
- Cheat Sheet pyspark RDD(PySpark 速查表)
- java13人机猜拳
public class Demo01 { public static void main(String[] args) { /* * 你同桌和你要玩游戏. * 1 剪刀,2 石头,3 布 */ // ...
- 当前行的td值传入模态框
<!-- 让include引用的页面,因为故障列表和周.月故障列表里面的table和分页是一样的前端页面,只有一点不同,没必要每个页面都写这些 --> <table id=" ...
- Cacti 升级
现在用的 cacti 1.0.3 决定升级一下cacti到最新版本 1.1.1 官方升级指导文件 Upgrading Cacti Backup the old Cacti database. ...
- linux硬盘分区、格式化、挂载超详细步骤(fdisk/parted))