首页 > 其他分享 >Vue项目入门实战(07)-想让你的Vue页面更炫酷?来学习样式绑定吧

Vue项目入门实战(07)-想让你的Vue页面更炫酷?来学习样式绑定吧

时间:2023-06-15 22:32:37浏览次数:36  
标签:Vue 07 styleObj color 绑定 activated 更炫酷 black

1 class的对象绑定

1.1 需求

现在要实现点击div区域里的 hello world 文本时,文本变成红色。

1.2 实现

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Vue中的样式绑定</title>
     <script src="../vue.js"></script>
     <style>
         .activated {
             color: red;
         }
     </style>
 </head>
 <body>
 
 <div id="app">
     <div :class="{activated: isActivated}"
          @click="handleDivClick">
         Hello world
     </div>
 </div>
 
 <script>
     var vm = new Vue({
         el: "#app",
         data: {
             isActivated: false
         },
         methods: {
             handleDivClick: function () {
                 this.isActivated = true;
             }
         }
     })
 </script>
 </body>
 </html>

效果:

Vue项目入门实战(07)-想让你的Vue页面更炫酷?来学习样式绑定吧_vue.js

咋实现点击后,再褪色回去呢?实现取反即可,而不是定值 true。

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Vue中的样式绑定</title>
     <script src="../vue.js"></script>
     <style>
         .activated {
             color: red;
         }
     </style>
 </head>
 <body>
 
 <div id="app">
 <!--    <div :style="[styleObj, {fontSize: '20px'}]"-->
 <!--         @click="handleDivClick">-->
 <!--        Hello world-->
 <!--    </div>-->
     <div :class="{activated: isActivated}"
          @click="handleDivClick">
         Hello world
     </div>
 </div>
 
 <script>
     var vm = new Vue({
         el: "#app",
         data: {
             isActivated: false
             // styleObj: {
             //     color: "black"
             // }
         },
         methods: {
             handleDivClick: function () {
                 // this.styleObj.color = this.styleObj.color === "black" ? "red" : "black";
                 // 点击变成红色
                 // this.isActivated = true;
                 // 再点击褪色
                 this.isActivated = !this.isActivated;
             }
         }
     })
 </script>
 </body>
 </html>

2 数组语法

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Vue中的样式绑定</title>
     <script src="../vue.js"></script>
     <style>
         .activated {
             color: yellow;
         }
     </style>
 </head>
 <body>
 
 <div id="app">
     <div @click="handleDivClick"
          :class="[activated]">
         Hello world
     </div>
 </div>
 
 <script>
     var vm = new Vue({
         el: "#app",
         data: {
             activated: ""
         },
         methods: {
             handleDivClick: function () {
                 this.activated = "activated"
             }
         }
     })
 </script>
 </body>
 </html>

如何实现再点击后,褪色呢?

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Vue中的样式绑定</title>
     <script src="../vue.js"></script>
     <style>
         .activated {
             color: yellow;
         }
     </style>
 </head>
 <body>
 
 <div id="app">
     <div @click="handleDivClick"
          :class="[activated]">
         Hello world
     </div>
 </div>
 
 <script>
     var vm = new Vue({
         el: "#app",
         data: {
             activated: ""
         },
         methods: {
             handleDivClick: function () {
                 if (this.activated === "activated") {
                     this.activated = "";
                 } else {
                     this.activated = "activated";
                 }
             }
         }
     })
 </script>
 </body>
 </html>

Vue项目入门实战(07)-想让你的Vue页面更炫酷?来学习样式绑定吧_vue.js_02

3 style

挂一个对象

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Vue中的样式绑定</title>
     <script src="../vue.js"></script>
 </head>
 <body>
 
 <div id="app">
     <div :style="styleObj"
          @click="handleDivClick">
         Hello world
     </div>
 </div>
 
 <script>
     var vm = new Vue({
         el: "#app",
         data: {
             styleObj: {
                 color: "black"
             }
         },
         methods: {
             handleDivClick: function () {
                 this.styleObj.color = this.styleObj.color === "black"
                     ? "red" : "black";
             }
         }
     })
 </script>
 </body>
 </html>

div使用:style绑定样式对象styleObj。Vue实例中定义数据对象styleObj,color属性初始值为black。

定义了一个方法handleDivClick,当点击div时,判断color属性的值:

  • 如果为black则将其改为red
  • 否则改为black

挂一个数组

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Vue中的样式绑定</title>
     <script src="../vue.js"></script>
 </head>
 <body>
 
 <div id="app">
     <div :style="[styleObj, {fontSize:'20px'}]"
          @click="handleDivClick">
         Hello world
     </div>
 </div>
 
 <script>
     var vm = new Vue({
         el: "#app",
         data: {
             styleObj: {
                 color: "black"
             }
         },
         methods: {
             handleDivClick: function () {
                 this.styleObj.color = this.styleObj.color === "black"
                     ? "red" : "black";
             }
         }
     })
 </script>
 </body>
 </html>

Vue项目入门实战(07)-想让你的Vue页面更炫酷?来学习样式绑定吧_Vue_03


标签:Vue,07,styleObj,color,绑定,activated,更炫酷,black
From: https://blog.51cto.com/JavaEdge/6495484

相关文章

  • 2023.6.15 07.数据库存储过程
    07.数据库存储过程存储过程MySQL存储过程是⼀组预编译的SQL语句,可以在MySQL数据库中定义和存储,并在需要时执⾏。存储过程可以接受参数、执⾏条件判断、循环、异常处理等操作,使得开发⼈员可以把⼀系列操作组合成⼀个可重复使⽤的单元,从⽽提⾼代码的复⽤性和可维护......
  • Vue3 —— 商城项目
    create-vuecreate-vue是Vue官方新的脚手架工具,底层切换到了vite(下一代前端工具链),为开发提供极速响应。执行如下命令,这一指令将会安装并执行create-vuenpminitvue@latest无论您之前是否安装过create-vue,执行npminitvue@latest命令都会创建一个新的Vue项目。这个命令会......
  • vue时间处理
    vue时间处理https://blog.csdn.net/xc9711/article/details/123347629前言记录vue对时间的处理String与时间戳、时间互转计算时间差设置时间格式:YYYY-MM-DDHH:mm:ss年月日时分秒形式以及HH:mm:ss时分秒形式时间说明在此申明以下使用的时间相关的属性startTime:......
  • 如何调试lvds屏-基于TQT507开发板
    1.1.更换不同的屏  TQT507可以通过修改指定启动配置文件(Embedsky.ini)方便地支持不同分辨率的屏。用户可以显示参数写入配置文件中,并放到sd卡内。插入sd卡启动板卡,板卡会读取配置文件内容,并进行相应的设置。1.2.显示屏接线说明 TQT507Android支持LVDS和HDMI输出。LVDS和HDMI同......
  • Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用nginx的proxy_pass 代理跨
    Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用proxy_pass代理跨域转发前言本篇文章用于记录项目前端部署上线遇到的问题,包含对问题的思考、解决思路,以及从中获得的收获。正确的部署流程我也写了一篇文章,供大家参考使用宝塔将Vue2+Nodejs全栈项目打包部署到腾讯云服......
  • vue学习记录 4
    本地服务器配置apache安装学习参考网址:(官网下载apache包的时候可能会疯狂断开链接)教程里没说,但是要管理员身份操作cmd。https://blog.csdn.net/qqhruchen/article/details/127457889?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefaul......
  • vue封装公共组件库并发布到npm库
    利用的原理:vue框架提供的api:Vue.use(plugin),我们把封装好组件的项目打包成vue库,并提供install方法,然后发布到npm中。Vue.use(plugin)的时候会自动执行插件中的install方法。 一、组件库代码目录调整1.根目录创建packages文件夹2.在packages文件夹中新增components文......
  • 关于vue 使用setInterval定时器关闭失效的问题 原因为事件传播
    /****data.isPlay为显示那个按钮**startHandle开始定时器setInterval**pauseHandle,stopHandle理解为关闭定时器就好了clearInterval**/<viewclass="btn"@click.stop="startHandle"><viewclass="btn-statusbtn-play"><view......
  • Vue 中 组件通信 - 子传父(自定义事件)
    Vue中组件通信-子传父(自定义事件)Vue中组件通信-子传父(自定义事件)子传父步骤:在子组件的data里面定义好要传递的数据在子组件的模版里面正常使用该数据(一般是通过一定的动作,如点击,滑动等,来自定义事件向父组件传递,这里以click为例)在子组件的methods里面定义this.$......
  • Vue简单的分页功能实现一
    Vue简单的分页功能实现一前端的分页功能其实是对数据的分页处理,主要是在js中实现对数据的分页处理,这里分享两种简单的写法,以供参考。两种方法都是用vue来实现的。首先,相关的参数都一样,在vue里的data中定义好,如下所示:varvm=newVue({el:'#app',data:{list......