vue基础指令示例

news/2024/12/23 0:03:23/文章来源:https://www.cnblogs.com/albert919/p/18622818

1、vue基础示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>基础指令</title><script src="../vu/js/vue.js"></script><style>.box1{width: 150px;height: 150px;background-color: red;text-align: center;line-height: 150px;}.box2{width: 200px;height: 200px;background-color: blue;text-align: center;line-height: 200px;}.font{font-size: 20px;}.back{background-color: orange;}.color{color: blue;}.clsIn{background-color: red;text-align: center;width: 200px;height: 200px;line-height: 200px;}.clsOut{background-color: orange;text-align: center;width: 200px;height: 200px;line-height: 200px;}</style>
</head>
<body><!--插值语法示例-->
<div id="insertValue"><p>插值语法</p><hr><p>{{str}}</p><p>这是一个数字插值: {{num}}</p><p>这是一个数组插值语法根据索引取值:{{arr[0]}}</p><p>这是一个对象插值:{{obj.c}}</p>
</div><!--v-html和v-text示例-->
<div id="htmlText"><hr><p>文本指令</p><hr><!--将v-html:htmlText功能里面的data html变量里面的input渲染成html标签语法--><h3>v-html指令</h3><p v-html="html"></p><h3>v-text指令</h3><!-- v-text渲染成字符串, 如果p标签里面有内容v-text会把<p>测试</p>内容替换--><p v-text="content">这是老而v-text</p><hr><h3>v-show和v-if指令</h3><!-- v-show:如果是false 对内容或设置的样式不进行显示,但是标签存在,会将标签样式设置为display: none  --><!-- v-if:如果是false 对内容或设置的样式不进行显示,但是标签不存在(注:删除和添加标签,效率低)  --><div class="box1" v-show="b1">v-show-class-box1</div><p>v-if指令</p><div class="box2" v-if="b2">v-show-class-box2</div>
</div><!--点击事件on-click(注:@click)和v-bind示例-->
<div id="onBind"><hr><h3>这个是v-on:</h3><button v-on:click="handledClick">点击显示alert</button><!--v-on:click="handledClick" 可以写 @click="handledClick"--><button @click="handledClick">点击</button><hr><h3>v-bind</h3><img v-bind:src="url" alt=""><hr><h3>结合点击事件click和bind图片进行切换</h3><img v-bind:src="url" alt="" @click="imgClick">
</div><hr>
<h3>style和class指令绑定css样式示例</h3>
<div id="styleClass"><hr><div><h3>:class指定绑定css样式</h3><p :class="fontSize">字符绑定class指令 css类class字体大小</p><p :class="arrClass">数组绑定class指令,css类class 字体大小,字体颜色,背景色</p><p :class="objClass">对象绑定class指令,css类class 字体大小,字体颜色</p></div><hr><div><h3>:style指定绑定style属性css样式</h3><p :style="styleStr">字符串绑定style指定实现style属性css样式字体大小,字体颜色</p><p :style="styleList">数组绑定style指令实现style属性css样式字体颜色,背景色</p><p :style="styleObj">数组绑定style指令实现style属性css样式字体颜色,字体大小,背景色</p></div>
</div>
<hr>
<h3>v-if条件渲染和v-for循环渲染</h3>
<div id="forIf"><div><h5>条件判断显示正确而数据渲染</h5><!--v-if:代码开始的if判断, 代表的else if或elif判断 v-else:else判断--><!--根据条件判断正确的显示--><p v-if="score >= 90">优秀</p><p v-else-if="score > 70 && score < 90">良好</p><p v-else-if="score > 60 && score < 70">及格</p><p v-else>差</p></div><h5>v-for循显示数据</h5><div><p>循环列表显示数据</p><ul><li v-for="item in list">{{item}}</li></ul><p>循环列表数据值和索引号</p><ul><!--item代表获取数据值 index代表的索引,索引从0开始(注: 位置不能换,第一个只能是值,第二个索引--><li v-for="(item, index) in list">{{index}}: {{item}}</li></ul><p>循环对象获取key和值</p><ul><!-- v-for循环对象value:代表获取对象的值,key:代表获取对象的key--><li v-for="(value, key) in obj">{{key}}: {{value}}</li></ul><ul><!--v-for循环对象单独变量获取对象是值--><li v-for="value in obj">{{value}}</li></ul></div>
</div>
<hr>
<h3>v-model双向绑定示例</h3>
<div id="model"><!--v-model:数据会根据变化而变化v-model.lazy: input框内输入完后鼠标移除input框后内容才会显示v-model.number:input框内开头是数字后面输入字母或字符,字母或字符不会取值。如果开头是字母会正常显示v-model.trim:去除两侧空白--><h5>v-model随着数据变化而变化</h5><p><input type="text" v-model="bind">{{bind}}</p><h5>v-model.lazy离开input框数据发生变化</h5><p><input type="text" v-model.lazy="bindLazy">{{bindLazy}}</p><h5>v-model.number input框中开头输入数字后面数据内容不会取值显示,如果开头字母或字符正常取值显示</h5><p><input type="text" v-model.number="bindNumber">{{bindNumber}}</p><h5>v-model.trim 去除input框输入内容两侧空白</h5><p><input type="text" v-model.trim="bindTrim">{{bindTrim}}</p>
</div>
<hr>
<h3>blur change input事件示例</h3>
<div id="blurChangeInput"><p><input type="text" v-model="blur" @blur="blurClick"></p><p><input type="text" v-model="change" @change="changeClick"></p><p><input type="text" v-model="input" @input="inputClick"></p></div>
<hr>
<h3>动态背景颜色切换</h3>
<div id="mousemove"><!--mousemove鼠标移近发生变化,mouseout鼠标移除发生变化--><div :class="cls" @mousemove="seMove" @mouseout="seOut">OK</div>
</div><hr>
<div id="clickModify"><h1>点击子标签,父标签的事件也触发,事件冒泡</h1><ul @click="handledUl"><!--@click.stop:只处理自己的事件,不再冒泡到父标签 --><li @click.stop="handledLi">第一次点击</li><li>点击触发父标签冒泡</li></ul><h1>子标签的冒泡不处理:父标签写self, 父标签只处理自己的事件,冒泡的事件不管</h1><!--@click.self:只处理自己的事件,子控件冒泡的事件不处理--><ul @click.self="handledUl"><li @click.stop="handledLi">第一次点击</li><li>第二次点击</li></ul><h1>阻止a标签的跳转</h1><!--@click.prevent:阻止a标签的跳转--><a href="https://www.baidu.com" @click.prevent="handledA">点击跳转到百度</a><h1>只能点击1次</h1><!--@click.once:只能点击1次,如果需要多次点击需要刷新才可以点击--><button @click.once="handledBut">点击获取</button></div></body>
<script>var insertValue = new Vue({el: "#insertValue", // /根据id找到div,这个div就是被vue托管data: {str: "这是一个插值字符串",num: 10,arr: ['A', 'B', 'C'],obj: {c: 100, d: 200},}})var htmlText = new Vue({el: "#htmlText",data: {html: '<input type="text">',content: '新的v-text指令',b1: false,b2: true,}})var onBind = new Vue({el: "#onBind",data:{url: 'http://gips2.baidu.com/it/u=195724436,3554684702&fm=3028&app=3028&f=JPEG&fmt=auto?w=1280&h=960',url_list: ["http://gips0.baidu.com/it/u=2298867753,3464105574&fm=3028&app=3028&f=JPEG&fmt=auto?w=960&h=1280","http://gips1.baidu.com/it/u=1410005327,4082018016&fm=3028&app=3028&f=JPEG&fmt=auto?w=960&h=1280","http://gips2.baidu.com/it/u=1192674964,3939660937&fm=3028&app=3028&f=JPEG&fmt=auto?w=1280&h=960",]},methods:{handledClick(){alert("这个是点击显示alert内容")},imgClick(){this.url=this.url_list[Math.floor(Math.random()*3)]}}})var styleClass = new Vue({el: '#styleClass',data: {// 1-1 class指令绑定css样式// 字符串方式fontSize: '',// 推荐使用数据组进行css class类样式设置arrClass: ['font', 'color', 'back'],// 对象方式绑定class类样式。注:font, color, back代表css样式类,true代表使用此类,false代表不使用objClass: {font: true,color: true,back: false,},// style指定字符串模式绑定style属性实现css样式styleStr: "font-size: 30px; color: red",// 数组方式styleList: [{color: "green"}, {backgroundColor: "red"}],// 对象方式, 推荐使用对象方式进行style样式设置styleObj: {color: "red",backgroundColor: "green",fontSize: "35px",}}})var forIf = new Vue({el: "#forIf",data: {score: 65,list: ['A', 'B', 'C', 'D'],obj: {beijing: "北京",shanghai: "上海",shenzhen: "深圳",}}})var model = new Vue({el: "#model",data: {bind: "",bindLazy: "",bindNumber: "",bindTrim: "",}})var blurChangeInput = new Vue({el: "#blurChangeInput",data: {blur: "鼠标移开失去焦点事件",change: "数据发生变化触发事件",input: "输入内容触发事件",},methods: {blurClick(){console.log(this.blur)},changeClick(){console.log(this.change)},inputClick(){console.log(this.input)}}})var mousemove = new Vue({el: "#mousemove",data: {// 绑定css 样式类,将样式类分别设置为true,falsecls:  {clsIn: true, clsOut: false}},methods: {seMove(){// 鼠标移进将this.cls.clsIn=falsethis.cls.clsOut = true},seOut(){this.cls.clsIn=truethis.cls.clsOut = false}}})var clickModify = new Vue({el: "#clickModify",data: {},methods:{handledLi(){console.log("li被点击")},handledUl(){console.log("触发ul父标签冒泡")},handledA(){console.log("禁止访问")},handledBut(){alert("只能被点击一次,在点击需要刷新")}}})
</script>
</html>

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/857007.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

楚慧杯Misc—复现

gza_CrackerCrack_me 追踪tcp流量找到字典保存字典,上流量一把梭base64解密特殊流量2 一把梭出个www.zip打开,是个RSA <?php $cmd = @$_POST[ant]; $pk = <<<EOF -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfhiyoPdM6svJZ+QlYywklwVcx…

INFINI Labs 产品更新 | Console/Gateway/Agent 等产品开源发布首个版本

INFINI Labs 产品又更新啦~,包括 Easysearch v1.9.0、Gateway、Console、Agent、Loadgen v1.27.0。本次各产品更新了很多亮点功能,如 Easysearch 优化了多版本兼容配置;Console/Gateway/Agent/Loadgen 及 Framework 开源后,发布首个重大更新版本,支持过期元数据删除,指标…

JVM简介—1.Java内存区域

大纲 1.运行时数据区的介绍 2.运行时数据区各区域的作用 3.各个版本内存区域的变化 4.直接内存的使用和作用 5.站在线程的角度看Java内存区域 6.深入分析堆和栈的区别 7.方法的出入栈和栈上分配、逃逸分析及TLAB 8.虚拟机中的对象创建步骤 9.对象的内存布局 10.对象的访问定位 …

鸿蒙登录页面好看的样式设计-HarmonyOS应用开发实战与ArkTS代码解析【HarmonyOS 5.0(Next)】

鸿蒙登录页面好看的样式设计-HarmonyOS应用开发实战与ArkTS代码解析 万物智联,打造无缝智能生态 在科技不断迭代更新的今天,每一次技术的飞跃都是对未来的深刻探索。华为,这个始终站在科技前沿的企业,再次以HarmonyOS 5.0(Next)这一操作系统的新篇章,向我们展示了科技如…

EVM介绍及字节码简单逆向

什么是EVM 以太坊是一个分布式的状态机,其中的状态不仅包含所有的账户和余额,还有EVM和EVM状态(可以被预先定义的规则所改变的东西); EVM是以太坊中的虚拟机,可以允许不被信任的代码执行;它是一个基于栈的虚拟机,有一个短暂的内存和一个永久存储的状态;PC:类似计算机中的…

HarmonyOS 5.0 (Next)应用开发实战:使用ArkTS构建开箱即用的登录页面【HarmonyOS 5.0(Next)】

HarmonyOS 5.0 (Next)应用开发实战:使用ArkTS构建开箱即用的登录页面【HarmonyOS 5.0(Next)】 一、HarmonyOS 5.0美学与科技的完美融合 在科技飞速发展的今天,每一个细微的创新都可能引领一场变革。华为,作为科技领域的领航者,再次以HarmonyOS 5.0(Next)这一里程碑式…

fellyfin 开启硬件加速 Ubuntu 安装硬件驱动

需要 root 权限。在主机系统上安装该intel-gpu-tools包,用于在 Linux 上调试英特尔显卡驱动程序。不同发行版的名称不同。在 Debian 和 Ubuntu 上:sudo apt update && sudo apt install -y intel-gpu-tools在 Jellyfin 网络客户端中播放视频,并通过设置较低的分辨率…

开箱即用的个人主页页面开发实战—基于HarmonyOS 5.0 (Next)和ArkTS的实现【HarmonyOS 5.0(Next)】

开箱即用的个人主页页面开发实战—基于HarmonyOS 5.0 (Next)和ArkTS的实现【HarmonyOS 5.0(Next)】 一、HarmonyOS 5.0(Next)革新设计理念,打造和谐美学 在科技日新月异的今天,操作系统作为智能设备的灵魂,正不断推动着数字生活的变革。华为,作为全球领先的科技企业,…

数据结构期末复习

武汉理工大学数据结构期末复习数据结构期末复习 By Persona_owl 第一章 绪论 1. 基本概念和术语数据:计算机操作的对象的总称,是信息的符号表示形式。数据元素: 数据的基本单位,通常作为一个整体进行处理,由更小的数据项组成。数据项是数据不可分割的最小单位。数据结构: 存…

探索HarmonyOS开发:用ArkTS构建个人主页和活动管理系统【HarmonyOS 5.0(Next)】

探索HarmonyOS开发:用ArkTS构建个人主页和活动管理系统【HarmonyOS 5.0(Next)】 一、一个系统,统一生态 口号:“一个系统,统一生态”,旨在全面突破操作系统核心技术,实现系统架构由内到外的焕然一新。 流畅度提升:相比前代,HarmonyOS 5.0(Next)的流畅度提升了30%,…

HarmonyOS应用开发实战-开箱即用的首页页面构建与ArkTS解析【HarmonyOS 5.0(Next)】

HarmonyOS应用开发实战-开箱即用的首页页面构建与ArkTS解析【HarmonyOS 5.0(Next)】 一、HarmonyOS Next 5.0的优势 AI能力:HarmonyOS Next 5.0通过系统级AI能力,将AI下沉至操作系统并赋能给多个子系统,从而提升了应用的智能化体验。例如,小艺助手在HarmonyOS Next 5.0中…