vue.js-学习之路day04

今天学习内容

1.简易计算器

2.vue的方式通过class设置样式

3.vue的方式通过style设置样式

4.v-for三种使用方法

5.v-for中key的使用

6.v-if和v-show的使用对比

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        .bg {
            background-color: darkcyan;
        }

        .active {
            color: darkred;
        }

        .size {
            font-size: 30px;
        }

    </style>
</head>
<body>

<div id="app">
    <!--简易计算器-->
    <input type="text" v-model="n1">
    <select v-model="opt">
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
    </select>
    <input type="text" v-model="n2">
    <input type="button" value="=" @click="cal">
    <input type="text" v-model="result">

    <!--使用class设置样式的-->
    <h4>使用class设置样式的</h4>

    <!--方式一-->
    <h5>方式一:数组</h5>
    <p :class="['size','active']">哈哈哈哈哈哈哈</p>

    <!--方式二-->
    <h5>方式二:数组中使用3元表达式</h5>
    <p :class="['size',flag?'active':'']">哈哈哈哈哈哈哈</p>

    <!--方式三-->
    <h5>方式三:数组中嵌套对象</h5>
    <p :class="['active',{'size':false}]">哈哈哈哈哈哈哈</p>

    <!--方式四-->
    <h5>方式四:直接使用对象</h5>
    <p :class="{'bg':true,'size':true,'active':true}">哈哈哈哈哈哈哈</p>

    <!--使用style设置样式-->
    <h4>使用style设置样式</h4>

    <!--方式一-->
    <h5>方式一:直接在元素上设置</h5>
    <p :style="{'color':'red'}">哈哈哈哈哈哈哈</p>

    <!--方式二-->
    <h5>方式二:在data上设置</h5>
    <p :style="classStyle">哈哈哈哈哈哈哈</p>

    <!--方式三-->
    <h5>方式三:在元素上使用数组设置</h5>
    <p :style="[classStyle,{'font-size':'20px'}]">哈哈哈哈哈哈哈</p>

    <!--方式四-->
    <h5>方式四:数组中使用3元表达式</h5>
    <p :style="[flag?classStyle:'',{'font-size':'20px'}]">哈哈哈哈哈哈哈</p>

    <!--v-for四种使用方法-->
    <h4>v-for三种使用方式</h4>

    <!--方式一-->
    <h5>方式一:迭代数字</h5>
    <span v-for="count in 10">{{ count }},</span>

    <!--方式二-->
    <h5>方式二:迭代数组</h5>
    <p v-for="(item,index) in list">{{ index }}-{{ item }}</p>

    <!--方式三-->
    <h5>方式三:迭代对象</h5>
    <p v-for="(val,key,index) in obj">{{ index }}-{{ key }}:{{ val }}</p>

    <!--v-for中key的使用-->
    <h4>v-for中key的使用</h4>
    <label for="">id:
        <input type="text" v-model="id">
    </label>
    <label for="">name:
        <input type="text" v-model="name">
    </label>
    <input type="button" value="添加" @click="add">

    <!--如果不加key,checkbox记录的索引就不会根据已选框变化-->
    <p v-for="item in obj2" :key="item.id">
        <input type="checkbox">{{ item.id }} --- {{ item.name }}
    </p>

    <!--v-if和v-show的使用对比-->
    <h4>v-if和v-show的使用对比</h4>
    <input type="button" @click="toggle" value="触发">
    <!--v-if 有较高的切换性能消耗,原因是直接删除增加dom-->
    <!--v-show 有较高的渲染性能消耗,原因是添加删除display:none-->
    <!--如果元素设计到频繁的切换, 最好不要使用v-if-->
    <h3 v-if="toggled">这是用v-if控制的元素</h3>
    <h3 v-show="toggled">这是v-show控制的元素</h3>

</div>


<script src="lib/vue.js"></script>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            flag: false,
            toggled: true,
            classStyle: {
                color: 'blue'
            },
            n1: 0,
            opt: "+",
            n2: 0,
            result: 0,
            list: ["jack", "ben", "jason", "james", "小明", "老桑"],
            obj: {
                name: "jack",
                age: 10,
                gender: "男",
                hobby: "吃鸡"
            },
            id: "",
            name: "",
            obj2: [
                {id: 1, name: "桑吉尔夫"},
                {id: 2, name: "嘉米"},
                {id: 3, name: "骨裂"},
                {id: 4, name: "阿比盖尔"},
                {id: 5, name: "杀意隆"}
            ]

        },
        methods: {
            cal: function () {
                switch (this.opt) {
                    case "+":
                        this.result = parseInt(this.n1) + parseInt(this.n2);
                        break;
                    case "-":
                        this.result = parseInt(this.n1) - parseInt(this.n2);
                        break;
                    case "*":
                        this.result = parseInt(this.n1) * parseInt(this.n2);
                        break;
                    case "/":
                        this.result = parseInt(this.n1) / parseInt(this.n2);
                        break;
                }
            },
            add: function () {
                this.obj2.unshift({id: this.id, name: this.name})
            },
            toggle: function () {
                this.toggled = !this.toggled
            }

        }

    })

</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值