当前位置: 首页 > news >正文

Vue01

Vue的基本概述

<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <!-- 一旦引入的vue核心包,就可以全局使用 --> <script src="js/vue.js"></script> </head> <body> <!-- 创建vue实例需要的步骤 1.准备一个容器(vue渲染数据的范围) 2.引入vue环境 3.创建vue实例 4.添加vue实例的配置项 4.1 el挂载点 4.2 data准能被数据 --> <div id="app"> <!-- 插值表达式,我们将来要进行一个数据的渲染就使用这种方式,插值表达式里面定义data里面的变量名称 --> {{msg}} <br> {{name}} </div> <script> const v = new Vue({ // 通过el我们可以配置选择器,这样可以定位到vue实例所作用的容器 el:"#app", // 通过data可以定义数据,在容器里面渲染的就是data的数据 data:{ msg:"hello vue", name:"eric", } }) </script> </body>

几种错误的使用情况:

1.渲染data中没有定义的数据

2.不要在插值表达式中写if这样的判断

3.不要再html属性中写插值表达式

正确写法

Vue指令

<style> .box{ width: 200px; height: 100px; line-height: 100px; border:2px red solid; margin: 3px; } </style> </head> <body> <!-- v-show和v-if都是控制HTML元素的显示和隐藏 如果值为true会显示,否则隐藏 v-show和v-if的区别: 在隐藏元素时,show通过隐藏样式(display:none)的方式, if通过将当前的dom元素删除掉 --> <div id="app"> <div v-show="flag" class="box">演示v-show的使用</div> <div v-if="flag" class="box">演示v-if的使用</div> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ flag:true } }) </script>

<body> <div id="app"> <p v-if="sex==1">性别:男</p> <p v-else>性别:女</p> <hr> <p v-if="score>=90">成绩等级A:优秀</p> <p v-else-if="score>=80">成绩等级B:良好</p> <p v-else-if="score>=60">成绩等级C:合格</p> <p v-else>成绩等级D:不合格</p> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ sex:2, score:67 } }) </script>

<body> <div id="app"> <button @click="count=count-1" type="button">-</button> <span>{{count}}</span> <button @click="count=count+1" type="button">+</button> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ count:100, } }) </script>

<body> <div id="app"> <button @click="fn1" type="button">显示与隐藏</button> <div v-show="flag">这是一个box</div> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ flag:true, }, methods:{ //用来定义处理函数 //如果要在methods中使用data中的数据,我们可以使用 //Vue实例.属性名的方式来引用 //也可以使用this动态的指向当前动态实例 fn1(){ this.flag = !this.flag; } } }) </script>

<body> <div id="app"> <div style="margin-bottom: 15px; width: 250px; border: 3px black solid;border-radius: 5px;"> <h3>自动售货机</h3> <button @click="todec(5)" type="button">可乐5元</button> <button @click="todec(8)" type="button">牛奶8元</button> <button @click="todec(10)" type="button">咖啡10元</button> </div> <div> <p>银行卡余额:{{money}}元</p> </div> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ money:100, }, methods:{ todec(price){ if(this.money<price){ alert("余额不足"); return; } this.money-=price; }, dec5(){ this.money-=5; }, dec8(){ this.money-=8; }, dec10(){ this.money-=10; } } }) </script>

图片的上下页切换

<body> <div id="app"> <!-- <img v-bind:src="imgUrl" v-bind:alt="Alt" v-bind:title="Title"> --> <!-- v-bind是给html属性动态设置值,也可以:属性名称=值 eg: :src="" :alt="" :title="" --> <img :src="imgUrl"> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ imgUrl:"https://img1.baidu.com/it/u=302146640,1270496570&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1067", Alt:"五五上", Title:"无无山", } }) </script>
<body> <div id="app" > <!-- 只有当前这一页下标不是0才显示可以上一页 --> <button v-show="index!=0" @click="index--" type="button">上一页</button> <div> <img style="height: 200px;" :src="list[index]" alt="haha"> </div> <button v-show="index!=5" @click="index++" type="button">下一页</button> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ index:0, list:[ "https://img1.baidu.com/it/u=882687410,353298960&fm=253&app=138&f=JPEG?w=500&h=667", "https://img1.baidu.com/it/u=2211909947,1090713287&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1155", "https://img0.baidu.com/it/u=3378675194,2222160237&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=667", "https://img2.baidu.com/it/u=124634888,3066510728&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=667", "https://img1.baidu.com/it/u=2413649154,1697438573&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=667", "https://img2.baidu.com/it/u=3606113107,1124599065&fm=253&app=138&f=JPEG?w=500&h=501" ], } }) </script>

<body> <div id="app"> <ul> <!-- 遍历数组 --> <li v-for="(item,i) in arr"> {{item}} -- {{i}} </li> </ul> <ul> <li v-for="(item) in arr"> {{item}} </li> </ul> <ul> <!-- 遍历对象 --> <li v-for="(v,key,io) in person"> {{v}} {{person}} {{io}} </li> </ul> <ul> <!-- 遍历对象数组 --> <li v-for="(item) in emps"> 姓名:{{item.name}}, 年龄:{{item.age}} </li> </ul> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ arr:["白菜","黄瓜","胡萝卜","豆荚"], person:{ name:"kobe", age:19, address:"USA" }, emps:[ { name:"kobe", age:18, address:"USA" },{ name:"james", age:16, address:"USA" },{ name:"lebra", age:17, address:"USA" } ] } }) </script>

图书信息的展示和删除操作

<body> <div id="app"> <li v-for="(item) in books"> {{item.name}}--{{item.author}}<button @click="del(item.id)" type="button">删除</button> </li> </div> </body> <script src="js/vue.js"></script> <script> const v = new Vue({ el:"#app", data:{ books:[ {id:1,name:"《红楼梦》",author:"曹雪芹"}, {id:2,name:"《西游记》",author:"吴承恩"}, {id:3,name:"《水浒传》",author:"施耐庵"}, {id:4,name:"《三国演义》",author:"罗贯中"} ] }, methods:{ del(id){ //根据id删除数组中的元素,根据filter方法 //filter过滤规则是:如果数组中的每个元素的id与当前的id不相等,就将其过滤出来,然后放在一个新数组中 this.books = this.books.filter(ite => ite.id!==id); } } }) </script>

-key的使用

<body> <!-- 循环列表时,我们要习惯个每一个li列表添加一个唯一标识 eg: :key="唯一值" 这样在删除时可以将li删除干净 --> <div id="app"> <li :key="item.id" v-for="(item) in books"> {{item.name}}--{{item.author}}<button @click="del(item.id)" type="button">删除</button> </li> </div> </body>
http://www.jsqmd.com/news/977992/

相关文章:

  • 你的数字记忆保险箱:完全免费永久保存微信聊天记录终极指南
  • 终极指南:免费Windows风扇控制神器FanControl完全配置手册
  • DeTikZify终极指南:3步将科研图表秒变高质量TikZ代码
  • 2026年Q2登高作业培训品牌排行及选型实操推荐 - 优质品牌商家
  • 陈刚直言|一条产线,三种制造模式:如何复用同一套软件?
  • 2026年友联国际物流,海运整箱拼箱性价比高的厂家推荐 - mypinpai
  • 怎样同时采集美团和饿了么两个平台的竞品数据?——2026跨平台AI Agent自动化实战指南
  • 友联国际物流的进出口清关服务靠谱吗 - myqiye
  • 2026年6月大润发购物卡全解析及闲置变现推荐:广州,深圳,杭州,全国沃尔玛购物卡回收价格/优选指南 - 优质品牌商家
  • Agent到底是什么?大模型新焦点,小白程序员必看(收藏备用)
  • 2026年净化工程公司如何选择 - 工业品牌热点
  • 大模型推理引擎架构深度解析:从 PagedAttention 到 Disaggregated Serving 的高性能推理服务核心技术
  • 一篇读懂C语言
  • C语言pthread_create传参踩坑记:从‘-Wincompatible-pointer-types’警告到线程安全数据传递
  • 2026年LED显示屏选购指南,哪家好? - mypinpai
  • Linux进程控制学习总结(2/2)
  • 基于spark的南宁空气质量评估与预测系统的设计与实现
  • 2026年LED显示屏哪家好用?性价比高的品牌排名 - myqiye
  • 使用ai别再Windows裸环境开发了!1套WSL2 Ubuntu环境,搞定AI/后端全场景开发
  • Java开发中的设计模式应用:提升代码质量的秘诀
  • 陈刚直言 | 华为韬(τ)定律启示:发起 AMT2ABC 开源生态
  • ThinkPad风扇终极控制:TPFanControl2完全使用指南
  • 小米 mimo 邀请码 4EQMGN
  • 如何永久保存微信聊天记录:WeChatMsg本地导出工具终极指南
  • 2026年能做耐高温长途运输保鲜泡沫箱的厂家排名 - mypinpai
  • Go 内存优化与 GC 调优:高性能服务的底层机制,从分配到回收的全链路优化
  • 2026年余姚靠谱的黄金回收机构有哪些?融通寄售黄金名表值得信赖 - 工业品牌热点
  • 别再只懂四舍五入了!IEEE754浮点数舍入模式实战:用Python和C++代码带你搞懂银行家舍入
  • 推荐性价比高的风道加热器,江苏登翔怎么样? - mypinpai
  • SAP SD进阶:巧用KNMT底表与KOTG条件表,深度解析客户物料主数据的后台逻辑与权限控制