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

Vue之样式绑定

样式绑定
class绑定
使用方式:v-bind:,expression的类型:字符串、数组、对象
style绑定
v-bind:style=“expression”, expression的类型:字符串、数组、对象

示例:
<--定义示例样式-->
<style> 
.fontClass { 
    font-size: 40px;
}
.colorClass {
    color: red;
}
</style>
1
2
3
4
5
6
7
8
9
10
<!--使用-->
<p>
    <span v-bind:class="fc">fafa</span>
</p>
<p>
    <!--简写-->
    <span :class="ac">fafa</span>
</p>

<p>
    <!--直接使用style样式单-->
    <span style="font-size: 40px; color:blue;">aaa</span>
    <br/>
    <!-- 使用vue,样式名称为驼峰风格 。花括号,多个属性逗号分隔-->
    <span :style="{fontSize:fontSize+'px',color: color}">bbb</span>
    <br/>
    <span :style="myStyle">test</span>
</p>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var vm = new Vue({
    el: "#app",

    data: {
        fc: 'fontClass',
        ac: ['fontClass', 'colorClass'],

        fontSize: 40,
        color: 'green',

        //样式对象,注意:样式名使用驼峰命名,如:fontSize
        myStyle: {
            fontSize: '50px',
            color:'red',
            fontWeight: 'bold'
        }
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
事件修饰符
几个常用的事件修饰符:

示例:

<div>接收消息:{{receverMsg}}</div>
<p>
    <!--响应多次或一次点击事件-->
    <input type="text" v-model="sendMsg">
    <button @click="sender">发送(多次)</button>
    <button @click.once="sender">发送(一次)</button>
</p>
<p>
    <!-- 阻止表单提交 -->
    <form action="testAction.action" method="post" @submit.prevent="doSubmit()">
        <label>名称</label>
        <input type="text" name="name"/>
        <input type="submit" value="提交"/>
    </form>
</p>
var vm = new Vue({

    el: "#app",

    data: {
        receverMsg: null,
        sendMsg: null
    },

    methods: {
        sender: function() {
            this.receverMsg = this.sendMsg;
        },
        doSubmit: function() {
            alert('ok');
        }
    }

});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
按键修饰符
Vue允许为v-on在监听键盘事件时添加按键修饰符。
示例:

<input type="text" @keyup.13="doSubmit" v-model="name">
var vm = new Vue({

    el: "#app",

    data: function() {
        return {
            name: 'hello vue'
        }
    },

    methods: {
        doSubmit: function() {
            alert("响应enter," + this.name);
        }
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
常用控件
4.1 常用控件示例
通过实现一个类型注册的页面,熟悉常用的控件。文本框/密码框/文本域/单选/多选/下拉列表
<div id="app">
    <div>
        <label>账号:</label>
        <input type="text" v-model="uname">
    </div>
    <div>
        <label>密码:</label>
        <input type="password" v-model="upwd">
    </div>
    <div>
        <label>年龄:</label>
        <input type="text" v-model="age" >
    </div>
    <div>
        <label>性别:</label>
        <input type="radio" v-model="sex" value="1">男
        <input type="radio" v-model="sex" value="2">女
    </div>
    <div>
        <label>爱好:</label>
        <div style="display: inline;" v-for="h in hobbies">
            <input  type="checkbox" :value="h.id" v-model="hobby"/>{{h.name}}
        </div>
    </div>
    <div>
        <label>地区</label>
        <select v-model="selectedCity">
            <option value="">-- 请选择 --</option>
            <option v-for="c in city" :value="c.id">{{c.name}}</option>
        </select>
    </div>
    <div>
        <label>备注:</label>
        <textarea v-model="remark"></textarea>
    </div>
    <div>
        <input type="checkbox" v-model="flag">是否已阅读并同意协议
    </div>
    <div>
        <button @click="submit" :disabled="disabled">提交</button>
    </div>
</div>
var vm = new Vue({

    el: "#app",

    data: {
        uname: '',
        upwd:'',
        age:'',
        sex: 1,

        //用于通过v-for指令输出多选框列表
        hobbies:[
            {id: '1', name:'打游戏'},
            {id: '2', name:'编程'},
            {id: '3', name:'旅游'}
        ],
    
        /*
         * 用于通过v-model双向绑定,保存用户的选择。
         * 此处为多选,需要通过数组接收,否则无法
         * 正常接收复选框的值,且复选框的行为也不正常,
         * 可能出现要么全部被选择,要么全部被取消的情况
         */
        hobby:[],

        remark: null,

        //用于生成地区选择列表
        city:[
            {id:"1", name:"长沙"},
            {id:"1", name:"株洲"},
            {id:"1", name:"湘潭"}
        ],

        //用于保存用户选择的地区
        selectedCity: '',

        //是否同意协议,默认值为false
        agreed:false,

        //提交按钮是否禁用,默认为true
        disabled: true
    },

    //监控agreed属性,如果同意协议则将提交按钮
    //设置为可用,否则提交按钮为禁用状态
    watch: {
        agreed: function(val) {
            if(val) {
                this.disabled = false;
            }else{
                this.disabled = true;
            }
        }
    },

    methods: {
        submit: function() {
            let data = {
                uname: this.uname,
                upwd: this.upwd,
                age:this.age,
                sex: this.sex,
                hobby: this.hobby,
                city: this.selectedCity,
                remark: this.remark
            }
            console.log(data);
        }
    }

});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
不使用监视器的简单方式: 删除监听器,然后将提交按钮的做如下修改

<button @click=“submit” :disabled=“!agreed”>提交
————————————————
版权声明:本文为CSDN博主「释:」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_73817220/article/details/133988408

相关文章:

  • pg数据库插入数据的时候,进行数据去重
  • Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED
  • 09、SpringCloud -- 利用redis的原子性控制高并发请求访问到service层、本地标识
  • 2023年【R1快开门式压力容器操作】考试题及R1快开门式压力容器操作模拟考试
  • 万维普惠:一支开启金融数智化时代的团队
  • 自主查询成绩
  • 13、SpringCloud -- RocketMQ 消息发送和消费的实际应用
  • ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
  • 小程序使用web-view增加新样式
  • Vdue之模版语法指令过滤器计算属性监听属性
  • ruoyi框架前端vue部署生产环境教程
  • 给出n个字母(a-z),找出出现次数最多的字母并输出。(附ASCII码表)
  • 基于枚举实现的工厂模式
  • openFeign的简单使用
  • ElasticSearch基础数据类型
  • [deviceone开发]-do_Webview的基本示例
  • 【EOS】Cleos基础
  • 4个实用的微服务测试策略
  • Apache Spark Streaming 使用实例
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • IndexedDB
  • JavaScript-Array类型
  • nfs客户端进程变D,延伸linux的lock
  • PAT A1120
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Sass Day-01
  • Spark RDD学习: aggregate函数
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 如何设计一个比特币钱包服务
  • 使用权重正则化较少模型过拟合
  • 一个完整Java Web项目背后的密码
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 怎么将电脑中的声音录制成WAV格式
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • puppet连载22:define用法
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $GOPATH/go.mod exists but should not goland
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)球球大作战
  • (k8s中)docker netty OOM问题记录
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (独孤九剑)--文件系统
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)appium-desktop定位元素原理