vue3初步学习

vue3初步学习

vue模版 练习代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>实验4</title>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
<body>
    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>1.文本插值</h2>
        <div id="app1">
            <!-- v-html 解析js属性中的标签及属性 -->
            <h3 v-html=message></h3>
            <!-- 文本插值和表达式插值 -->
            <div>{{a}}+{{b}}={{a+b}}</div>
        </div>

        <script>
            const text = {
                data(){
                    return{
                        message: '<p style="color:red">表达式求值</p>',
                        a: 10,
                        b: 20,
                    }
                }
            }
            Vue.createApp(text).mount("#app1")
        </script>
    </div>

    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>2.常用vue命令</h2>
        <div id="app2">
            <h3>{{message}}</h3>
            <input type="button" value="-" @click="sub">
            <span :title="name">{{count}}</span>
            <input type="button" value="+" @click="add">
            <br>
            <!-- v-model 可以在组件上使用以实现双向绑定。 -->
            <input v-model="taskText" placeholder="请输入内容...">
            <div>您输入的内容是:{{taskText}}</div>
        </div>

        <script>
            const app2 = {
                data(){
                    return{
                        message:'常用指令',
                        count: 0,
                        name: "计数器",
                        taskText: ""
                    }
                },
                methods:{
                    sub(){
                        if(this.count > 0)
                        this.count -= 1
                    },
                    add(){
                        this.count += 1
                    }
                }
            }
            Vue.createApp(app2).mount("#app2")
        </script>
    </div>

    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>3.v-if指令</h2>
        <div id="app3">
            <h3 v-if="cj">成绩等级</h3>
            <p>
                姓名:{{name}}<br>
                成绩:{{score}}<br>
                等级:
                <span v-if="score>90">优秀</span>
                <span v-else-if="score>80">良好</span>
                <span v-else>一般</span>
            </p>
        </div>

        <script>
            const student ={
                data(){
                    return{
                        cj: false,
                        name: "张三",
                        score: 85
                    }
                }
            }
            Vue.createApp(student).mount("#app3")
        </script>
    </div>

    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>4.v-for指令</h2>
        <div id="app4">
            <!-- 数组的参数为元素和下标 -->
            <div v-for="(item,index) in arr">第{{index + 1}}个学生是{{item}}</div>
            <!-- 对象数组的参数是元素 -->
            <p v-for="item in stu">id:{{item.id}} ------- name:{{item.name}}</p>
            <!-- 对象的参数是值,键和下标 -->
            <p v-for="(value,key,i) in obj">{{i}}:{{key}}:{{value}}</p>
            <!-- 数字 -->
            <p v-for="i in 5">第{{i}}次循环</p>
        </div>

        <script>
            const student2 = {
                data(){
                    return{
                        // 数组
                        arr:['张三','李四','王五'],
                        // 对象数组
                        stu:[{id: 1,name:'white'},
                        {id: 2,name:'rose'},
                        {id: 3,name:'mark'}],
                        
                        // 对象
                        obj:{
                            id: 1,
                            name: "rose",
                            sex: "female"
                        }
                    }
                }
            }
            Vue.createApp(student2).mount("#app4")
        </script>
    </div>

    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>5.综合实例--待办任务</h2>
        <div id="app5">
            <!-- 输入框元素,用来新建待办任务 -->
            <!-- prevent是修饰符,阻止默认事件,而去触发指定的事件 提交以后不会刷新页面-->
            <form @submit.prevent="addTask">
                <span>新建任务</span>
                <!-- placeholder属性用于设置表单输入框的占位符 -->
                <input v-model="taskText2" placeholder="请输入任务...">
                <button>添加</button>
            </form>
            <!-- 有序列表,使用v-for来构建 -->
            <ol>
                <li v-for="(item,index) in todos">
                    {{item}}
                    <button @click="remove(index)">
                        删除任务
                    </button>
                    <hr>
                </li>
            </ol>
        </div>
        
        <script>
            const App5 = {
                data(){
                    return{
                        // 待办任务列表数据
                        todos:[],
                        // 当前输入的待办任务
                        taskText2: "",
                    }
                },
                methods: {
                    // 添加一条待办任务
                    addTask(){
                        // 判断下输入框是否为空
                        if(this.taskText2.length == 0){
                            alert("请输入任务")
                            // alert()方法是显示一条弹出提示消息和确认按钮的警告框。
                            return
                        }
                        this.todos.push(this.taskText2)
                        this.taskText2 = ""
                    },
                    // 删除待办
                    remove(index){
                        this.todos.splice(index,1)
                    }
                }
            }
            Vue.createApp(App5).mount("#app5")
        </script>
    </div>

    

</body>
</html>

效果图

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. Kafka初步学习

    2024-03-28 20:34:04       7 阅读
  2. vue3 学习

    2024-03-28 20:34:04       32 阅读
  3. vue3版本学习

    2024-03-28 20:34:04       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-28 20:34:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-28 20:34:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-28 20:34:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-28 20:34:04       20 阅读

热门阅读

  1. C++经典面试题目(八)

    2024-03-28 20:34:04       20 阅读
  2. 在K8S上使用Clickhouse

    2024-03-28 20:34:04       22 阅读
  3. Apache POI 设置样式

    2024-03-28 20:34:04       19 阅读
  4. BFS-蓝桥杯常用Python算法

    2024-03-28 20:34:04       19 阅读
  5. 在Rocky Linux上安装Docker

    2024-03-28 20:34:04       20 阅读
  6. DateFormat类和SimpleDateFormat类

    2024-03-28 20:34:04       19 阅读
  7. 程序员35岁会失业吗?

    2024-03-28 20:34:04       19 阅读
  8. 笔记 socket长连接工具类

    2024-03-28 20:34:04       19 阅读
  9. C# 通过广播实现局域网自动连接

    2024-03-28 20:34:04       19 阅读
  10. MySQL全面瓦解备份与恢复

    2024-03-28 20:34:04       19 阅读
  11. 【Linux】文件查看命令(六)

    2024-03-28 20:34:04       18 阅读