vue3 vue的使用

一,数据的双向绑定(计算器)

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue-2.4.0.js"></script>
</head>

<body>
    <div id="app">
        <!-- 数据的双向绑定,绑定的表单控件 -->
        <input type="text" :value="value">
        <input type="text" v-model:value="value">
        <!-- 简写 -->
        <input type="text" v-model="value">
        <button @click="getVal">getVal</button>


        <br>
        <input type="text" v-model="first">
        <select name="" id="" v-model="selected">
            <option>+</option>
            <option>-</option>
            <option>*</option>
            <option>/</option>
        </select>
        <input type="text" v-model="end">
        <button @click="add">=</button>
        <input type="text" v-model="sum">
    </div>
    <script>
        const vm = new Vue({
            el: "#app",
            data: {
                value: "",
                first: "",
                end: "",
                sum: "",
                selected: "+",

            },
            methods: {
                getVal() {
                    console.log(this.value);
                },
                add() {
                    if (this.selected == "+") {
                        this.sum = Number(this.first) + Number(this.end)
                    }
                    else if (this.selected == "-") {
                        this.sum = Number(this.first) - Number(this.end)
                    }
                    else if (this.selected == "*") {
                        this.sum = Number(this.first) * Number(this.end)
                    }
                    else if (this.selected == "/") {
                        this.sum = Number(this.first) / Number(this.end)
                    }

                },
            }
        })
    </script>
</body>

二,样式的使用

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue-2.4.0.js"></script>
    <style>
        .box {
            width: 200px;
            height: 200px;
            background-color: aqua;
        }

        .fs40 {
            font-size: 40px;
        }
    </style>
</head>

<body>
    <div id="app">
        <div :class="class1">
            ADAD
        </div>
        <div class="box fs40">
            cca
        </div>
        <!-- 数组 -->
        <div :class="class2">dadddd</div>
        <!-- 三目表达式 -->
        <div :class="flag?'box':'fs40'">552236</div>
        <!-- 对象 -->
        <div :class="class3">5522366666</div>
        <!-- 数组内置对象 -->
        <button @click="cla"></button>
    </div>
    <script>
        const vm = new Vue({
            el: "#app",
            data: {
                flag: true,
                class1: "box fs40",
                class2: ['box', 'fs40'],
                class3:{'box':true,'fs40':true},
                class4:[{'box':true},{'fs40':false}]
               
            }, methods: {
                cla() {
                    this.class1 += " color"
                    this.class2.push('color')
               
                }
            }
        })
    </script>
</body>

三,v-for

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue-2.4.0.js"></script>
</head>

<body>
    <div id="app">
        <div>{{list[0]}}</div>
        <div>{{list[1]}}</div>
        <div>{{list[2]}}</div>
        <div>{{list[3]}}</div>
        <!-- key:
        必须是数字或字符串
        必须是唯一值
        key的作用:提高重排效率 就地复用 -->
        
        <div v-for="(item,index) in list" :key="index">
            {{item}}==={{index}}
           
        </div>
        <div v-for="item in list">
            {{item}}
        </div>
        <div v-for="item in listobj" :key="item.id"> 
           
         
            {{item.title}}
        </div>
        <!-- 遍历对象 -->
        <div v-for="(value,key,index) in obj">
            {{key}}==={{value}}=={{index}}
        </div>
        <!-- 遍历数字 -->
        <div v-for="num in 5">
            biao
        </div>
        <div v-for="(item,index) in listsc" :key="item.id">
            {{item.title}}
            <div v-for="itempage in item.Selection" :key="itempage.id">
                {{itempage.page}}
            </div>
        
            </div>
    </div> 
</body>
<script>
    const vm = new Vue({
        el: "#app",
        data: {
            listsc:[{
                id:1,
                title:'day01-',
                Selection:[
                   {
                    id:1,
                    page:'day01ss'
                   },
                   {
                    id:2,
                    page:'day02ss'
                   },
                   {
                    id:3,
                    page:'day03ss'
                   },
                    
                ]
            },
            {
                id:2,
                title:'day02-',
                Selection:[
                   {
                    id:1,
                    page:'day01ss'
                   },
                   {
                    id:2,
                    page:'day02ss'
                   },
                   {
                    id:3,
                    page:'day03ss'
                   },
                    
                ]
            }
        
        
        
        ],
            list: [1, 2, 3, 4],
            listobj: [
                {
                id: 1,
                title: 'title1'
            },
            {
                id: 2,
                title: 'title2'
            },
            {
                id: 3,
                title: 'title3'
            },


            ],
            obj:{
                name:"zs",
                age:18,
            },
            


        },
        method: {
          
        }
    })
</script>

三,v-if和v-show

相同点:隐藏元素
不同点:v-if是删除dom元素,
v-show是display:none

   应用场景: v-if应用于一次或者少次切换
             v-show应用于频繁的切换
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">
     
        <div v-if="flag">v-if</div>
        <div v-show="">v-show</div>

        <div v-if="age<18">wie</div>
        <div v-else>c</div>
    </div>
    <script>
        const vm= new Var({
            el:"#app",
            data:{
                flag:true,
                age:19,
            },
            methods:{

            }
        })
        </script>
</body>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值