内容绑定,事件绑定

-v-text(设置标签的文本值)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>v-text</title>
</head>
<body><div id="app"><!-- 正常写法 --><!-- 全替换写法,一般不推荐,使用了v-text后H2标签包含内容会被全部替换 --><h2 v-text="message">123213123</h2><!-- 插值表达式写法 --><h2>你好的英文是{{message}}</h2><!-- 字符串拼接一个!的插值表达式写法 --><!-- 全替换写法,一般不推荐,使用了v-text后H2标签包含内容会被全部替换 --><h2 v-text="message+'!'">123123123</h2><!-- 插值表达式写法 --><h2>你好的英文是{{message+"!"}}</h2></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{message:"Hello",}})</script>
</body>
</html>

-v-html(可以类似于v-text,但可以解析html结构)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>v-html</title>
</head>
<body><div id="app"><p v-html="content"></p><p v-text="content"></p></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{// content:"Hello",content:"<a href='www.baidu.com'>百度一下,你就知道</a>",}})</script>
</body>
</html>

-v-on(为元素绑定事件)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>v-on</title>
</head>
<body><div id="app"><!--<input type="button" v-on:事件名称="方法">可以使用 “@” 代替 “v-on:” 使用<input type="button" @事件名称="方法">--><input type="button" value="v-on指令-单击事件" v-on:click="doIt"><input type="button" value="v-on指令@用法-单击事件" @click="doIt"><input type="button" value="v-on指令-鼠标移入事件" v-on:monseenter="doIt"><input type="button" value="v-on指令@用法-双击事件" @dbclick="doIt"><h2 @click="changeFood">{{ food }}</h2></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{  food:"西兰花炒饭"},methods:{doIt:function(){alert("做程序员!");},// 点击就多拼接一段字符changeFood:function(){// console.log(this.food); //测试this.food += "好好吃"},},})</script>
</body>
</html>

小结,制作计数器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><button @click="subtractNum">-</button><!-- <span v-text>{{num}}</span> --><span v-text=>{{num}}</span><button @click="addNum">+</button></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{num:1},methods:{// 对data中变量的更改需要使用到this关键字addNum:function(){if(this.num==10){alert('已经最大了!');} else{this.num++;} },subtractNum:function(){if(this.num==0){alert('已经最小了!');} else{this.num--;} },},})</script>
</body>
</html>

显示切换,属性绑定

v-show(根据表达式的真假,通过操纵css中display切换元素的显示和隐藏)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>v-text</title>
</head>
<body><div id="app"><!-- v-show 的判定结果都是bool值,可以进行简单双符号比较 --><img src="" alt="Picture_1" v-show="isShow"><img src="" alt="Picture_2" v-show="isHidden"><!-- 点击后年龄变为4,v-show变为false --><img src="" alt="Picture_3" v-show="old >=16 " @click="changeOldTo4"></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{isShow:1,isHidden:0,old:18,},methods:{changeOldTo4:function(){this.old = 4;},},})</script>
</body>
</html>

v-if(根据表达式的真假,通过操纵dom元素来切换元素的去除和恢复,区别于v-show是利用display:none,这个是直接使元素在dom tree中去除,在实际使用中,频繁需要隐藏和现实切换使用v-show,反之使用v-if,操纵dom树对性能影响较大)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>v-if</title>
</head>
<body><div id="app"><input type="button" value="切换isShow" @click="toggleIsshow"><p v-if="isShow">Hello Vue!</p><!-- 对比v-show --><p v-show="isShow">Hello Vue! v-show</p></div><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{isShow:false,},methods:{toggleIsshow:function(){this.isShow = !this.isShow;}},})</script>
</body>
</html>

v-bind(对元素中的属性进行设置,v-bind基本使用方法:v-bind:属性名=表达式,可以不写v-bind,直接使用:元素的写法,通常搭配data中变量进行搭配使用)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.active{border: 1px solid red;}</style>
</head>
<body><div id="app"><!-- 使用三元表达式设置类名 --><img v-bind:src="imgSrc" alt="" :title="imgTitle" :class="isActive?'active':''"@click = "toggleActive"><br><!-- 使用对象的方式设置类名 --><img v-bind:src="imgSrc" alt="" :title="imgTitle" :class = "{active:isActive}"@click = "toggleActive"></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{imgSrc:"http://www.liuluyi.cn:9999/wp-content/uploads/2022/11/TheTree.png",imgTitle:"璐懿",isActive:"false",},methods: {toggleActive:function(){this.isActive = !this.isActive;}  },}) </script>
</body>
</html>

列表循环,表单元素绑定

v-for(根据数据操作列表结构)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><input type="button" value="添加" @click="add"><input type="button" value="移除" @click="remove"><!-- v-for常常与数组进行搭配使用 --><!-- 语法是(A,B) in array --><ul><li v-for="(city,index) in vagetables" :title="city.name">{{ index+1 }}四大直辖市:{{ city }}</li></ul></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{arr:["bejing","shanghai","tianjin","chongqing"],vagetables:[{name:"西兰花"},{name:"西红柿"},]},methods: {add:function(){this.vagetables.push({name:"牛奶"});},remove:function(){this.vagetables.shift();}},})</script>
</body>
</html>

v-on补充(执行逻辑传递额外的参数,自定义参数,事件修饰符)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><!-- 在函数之后传递形参,可以传递多个 --><input type="button" value="点击" @click="doIt(666,'老铁')"><!-- 一个输入框,如果没有enter参数,keyup每输入一个字符都会弹窗,enter之后就只会在会车的时候进行弹窗相当于.enter是在事件之后加上.修饰符来限制事件的触发--><input type="text" @keyup.enter="sayHi"></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{},methods: {doIt:function(p1,p2){console.log("do It!");console.log(p1,p2);},sayHi:function(){alert("吃了没?");},},})</script>
</body>
</html>

v-model(获取和设置表单元素的值,也叫做双向数据绑定,其作用为便捷的设置和获取表单元素的值)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>v-model</title>
</head>
<body><div id="app"><!-- input标签是最常见的表单元素 --><input type="text" v-model="message" @keyup.enter="getMessage"><!-- v-test差值表达式,{{}} --><h2 @click="setMessage">{{message}}</h2></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>// 创建Vue实例var app = new Vue({el:"#app",data:{message:"Hello",},methods: {getMessage:function(){alert(this.message);},setMessage:function(){this.message= "我已经修改!";},},})</script>
</body>
</html>

Vue本地应用(通过Vue实现常见网页效果)相关推荐

  1. vue本地项目静态资源管理

    vue本地项目静态资源管理 统一放在src/static里面css,images,js index.html里面使用重置样式 <link rel="stylesheet" h ...

  2. vue-ls vue 本地储存示例

    Vue插件,用于从Vue上下文中使用本地Storage,会话Storage和内存Storage 一个vue封装的本地储存的方法. 安装 Npm npm install vue-ls --save Ya ...

  3. vue本地模拟数据之mockjs安装 - cmd篇

    一.引言: 在项目中尝试了mockjs,mock数据,实现前后端分离开发. 官网描述mockjs是: 前后端分离 不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据. 数据类型丰富 通 ...

  4. Vue本地图片循环加载显示不出来,vue img标签 :src地址拼接

    Vue本地图片循环加载显示不出来,vue img标签 :src地址拼接 上代码: <img:src="img"alt="banner" /> dat ...

  5. vue : 本地调试跨域问题的解决办法:proxyTable

    vue : 本地调试跨域问题的解决办法:proxyTable 参考文章: (1)vue : 本地调试跨域问题的解决办法:proxyTable (2)https://www.cnblogs.com/fo ...

  6. vue本地静态图片的路径问题解决方案

    vue本地静态图片的路径问题解决方案 参考文章: (1)vue本地静态图片的路径问题解决方案 (2)https://www.cnblogs.com/ranyonsue/p/11608760.html ...

  7. 在本地如何启动Vue项目

    在本地如何启动Vue项目 1).在vue项目的目录下输入命令: npm install 2).运行成功后: 启动项目的方式: 方式一: 命令启动 : vue项目下输入 npm run dev 方式二: ...

  8. vue本地存储案例_本地化还是创意适应? 流氓游戏街的案例研究

    vue本地存储案例 关于游戏<流氓街头> (About the game Streets of Rogue) In 2017 tinyBuild released Streets of R ...

  9. Vue项目部署到云开发前端网页托管|unicloud版

    Vue项目部署到云开发前端网页托管-unicloud版 前言 创建Vue项目  一.检查环境   1.检查`Node`环境   2.检查`Vue`环境  二.创建项目   1.项目创建   2.创建成 ...

最新文章

  1. 软件测试培训分享:软件测试岗位面试技巧有哪些?
  2. 004_Vue按键修饰符
  3. oracle的iw算法,[转载]Oracle日期周详解IW
  4. java逻辑运算符_Java逻辑运算符
  5. 【洛谷1640】[SCOI2010]连续攻击游戏
  6. web自动化测试python+selenium学习总结----selenium安装、浏览器驱动下载
  7. qqkey获取原理_编译原理(第3版)[刘铭][实验程序源代码]
  8. 【VHDL】半减器和全减器的设计
  9. 微信小程序开发入门(API)
  10. 企业微信网页应用开发 - 消息/事件回调接口
  11. js+jQuery 打造我的快乐小农场
  12. C语言函数的定义和声明
  13. python读取邮箱邮件_Python读取我的outlook邮箱并分析邮件
  14. 【论文学习】STN —— Spatial Transformer Networks
  15. 201871010123-吴丽丽《面向对象程序设计(java)》第二周学习总结
  16. P2P常见名词的解释
  17. 如何利用GPT来发论文!!
  18. 机器人自动化《RPA国内外平台深度对比》
  19. 目标检测之—非极大抑制(NMS)综述
  20. 2022-4-15 基于单片机的超声波测距报警

热门文章

  1. matlab 绘制一分钟k线图,超短线分钟,1分钟k线图最佳买卖点
  2. jmu_python_最大公约数最小公倍数
  3. java替换图片内容
  4. 电信移动流量卡为什么首月免月租?联通卡却不免头铁呢?
  5. 智能车 PID 调试
  6. ❤️《GM/T 0024-2014: SSL 技术规范》
  7. kicad最小布线宽度默认是多少_【HIWE艾维】家庭智能装修布线详解
  8. 李泽湘:工程意识,百亿独角兽的核心竞争力 | 笔记
  9. 阿里云ECS lnmp linux7 安装mongodb连接不上 child process failed, exited with error number
  10. 题目:保护区里面有两只熊……,那么,在熊大熊二都不犯傻的前提下,都希望吃到最多的蜂蜜,请分析一下熊大熊二的行动逻辑,最优方案。