看Vue入门代码

本文介绍了Vue.js的基本用法,包括数据绑定、条件渲染、列表渲染、事件驱动、阻止默认行为及事件冒泡。通过示例展示了如何创建Vue实例、设置数据模型、使用`v-if`、`v-show`、`v-for`指令以及事件修饰符。此外,还涵盖了钩子函数的使用,如`beforeCreate`、`created`、`beforeMount`和`mounted`。
摘要由CSDN通过智能技术生成
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="app">
        <div>{{msg}}</div>
        <input type="button" value="获得div中的内容" @click="getText"/>
        <input type="button" value="设置div中的内容" @click="setText"/>
    </div>
    <script>
        new Vue({
            "el":"#app",//el是选择Vue可操作的区域
            "data":{
                "msg":"div的内容123"
            },//设置数据模型
            "methods":{
                "getText":function () {
                    alert(this.msg)
                },
                "setText":function () {
                    this.msg="Vue设置的新值"
                }
            }
        });
      
    </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="app">
        <div>{{msg}}</div>
        <p>{{msg}}</p>
        <a :href="username">{{aMsg}}</a>
        <input type="text" v-model.trim="username"/><br/>
        <input type="button" value="操作文本框中的内容" @click="getValue"/>
    </div>
    <script>
        new Vue({
            "el":"#app",//el是选择Vue可操作的区域
            "data":{
                "msg":"div的内容123",
                "aMsg":"点我",
                "username":"admin"
            },//设置数据模型
            "methods":{
                "getValue":function () {
                    alert(this.username);
                    //this.username="root"
                }
            }
        });
    </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <style>
        .divs{
            border: 1px solid red;
            width: 200px;
            height: 200px
        }
    </style>
</head>
<body>
    <div id="app">
        <div v-if="flag" class="divs">div1</div>
<!--        <div v-else="flag" class="divs">div2</div>-->
        <div v-show="flag" class="divs">div3</div>
        <input type="button" value="按钮" @click="changeDiv">
    </div>

    <script>
        new Vue({
            el:"#app",
            data:{
                flag:true,
            },
            methods:{
                changeDiv:function () {
                    this.flag=!this.flag;
                }
            }
        })
    </script>
</body>
</html>

 列表渲染

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="hobby in hobbys">{{hobby}}</li>
        </ul>
        <input type="button" value="按钮" @click="addHobby">
        <table>
            <tr>
                <th>索引</th>
                <th>编号</th>
                <th>品牌</th>
                <th>价钱</th>
            </tr>
            <tr v-for="(computer,index) in computers">
                <td>{{index+1}}</td>
                <td>{{computer.id}}</td>
                <td>{{computer.brand}}</td>
                <td>{{computer.price}}</td>
            </tr>
        </table>
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                hobbys:["java","抖音","大数据","前端","UI","快手"],
                computers:[
                    {
                        id:101,
                        brand:"联想",
                        price:5000
                    },{
                        id:102,
                        brand:"外星人",
                        price:15000
                    },{
                        id:103,
                        brand:"诺基亚",
                        price:6000
                    }]
            },
            methods:{
                addHobby:function () {
                    this.hobbys.push("看电影")
                }
            }
        })
    </script>
</body>
</html>

 事件驱动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="app">
        <input type="button" value="按钮" @click="clickTest(10,'java',true,false)"/><br/>
        <input type="text" @change="changeTest">
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{},
            methods:{
                clickTest:function (a,b,c) {
                    alert("点击事件绑定成功"+a+b+c)
                },
                changeTest() {
                    alert("值改变事件绑定成功123")
                }
            }
        })
    </script>
</body>
</html>

 取消控件的默认行为

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="app">
        <a href="http://baidu.com" @click.prevent="clickTest">点击跳转至百度</a>
        <form action="01_HelloWorld.html" method="" @submit.prevent="subitTest">
            <input type="text" name="username"/><br/>
            <input type="submit" >
        </form>
    </div>

    <script>
        new Vue({
            el:"#app",
            data:{},
            methods:{
                clickTest:function () {
                    alert("点击了超链接");
                    //如果你不想让超链接进行跳转
                    //event.preventDefault();//取消控件的默认行为
                },
                subitTest:function () {
                    alert("表单即将被提交");
                    //event.preventDefault();//取消控件的默认行为
                }
            }
        })
    </script>
</body>
</html>

阻止事件冒泡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <style>
        #div1{
            border: 1px solid red;
            width: 300px;
            height: 300px;
        }
        #div2{
            border: 1px solid blue;
            width: 100px;
            height: 100px;
        }
    </style>
</head>
<body>
    <div id="app">
        <div id="div1" @click="div1Test">
            <div id="div2" @click.stop="div2Test"></div>
        </div>
    </div>

    <script>
        new Vue({
            el:"#app",
            data:{},
            methods:{
                div1Test:function () {
                    alert("点击了大框");
                },
                div2Test:function () {
                    alert("点击了小框");
                    //event.stopPropagation();//阻止事件冒泡
                }
            }
        })
    </script>
</body>
</html>

钩子函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
<div id="app">
    <div id="div1">{{msg}}</div>
</div>
<script>
    new Vue({
        el:"#app",
        data:{
            msg:"div的内容123"
        },
        methods:{
            fun01:function () {
                console.log("这是fun01函数")
            }
        },
        watch:{},
        beforeCreate:function () {
            console.log("Vue对象初始化前执行...");
            console.log(this.msg);
            this.fun01();
        },
        created:function () {
            console.log("Vue对象初始化后执行...");
            console.log(this.msg);
            this.fun01();
        },
        beforeMount:function () {
            console.log("Vue对象渲染前执行...");
            console.log(document.getElementById("div1").innerText);//{{msg}}
        },
        mounted:function () {
            console.log("Vue对象渲染后执行...");
            console.log(document.getElementById("div1").innerText);//div中的内容
        }
    });
</script>

</body>
</html>

当然,我可以提供一个简单的 Vue 3 入门项目代码示例。这是一个基本的待办事项列表应用程序,你可以在其中添加和删除待办事项。 首先,确保你已经安装了最新版本的 Vue CLI。然后,创建一个新的 Vue 3 项目: ``` vue create todo-app ``` 选择默认的 preset 或手动选择需要的特性。 进入项目目录: ``` cd todo-app ``` 现在,我们可以开始编写代码。 打开 `src/App.vue` 文件,删除默认的模板内容,并替换为以下代码: ```html <template> <div> <h1>Todo App</h1> <input v-model="newTodo" placeholder="Add a new todo"> <button @click="addTodo">Add</button> <ul> <li v-for="(todo, index) in todos" :key="index"> {{ todo }} <button @click="removeTodo(index)">Delete</button> </li> </ul> </div> </template> <script> export default { data() { return { todos: [], newTodo: '' }; }, methods: { addTodo() { if (this.newTodo) { this.todos.push(this.newTodo); this.newTodo = ''; } }, removeTodo(index) { this.todos.splice(index, 1); } } }; </script> <style> ul { list-style-type: none; padding: 0; } li { margin-bottom: 10px; } </style> ``` 这段代码定义了一个包含输入框、添加按钮和待办事项列表的组件。`todos` 数组用于存储待办事项,`newTodo` 是用于绑定输入框的 v-model。点击添加按钮时,会将新的待办事项添加到 `todos` 数组中,并清空输入框的内容。点击删除按钮时,会从 `todos` 数组中删除相应的待办事项。 保存文件后,你可以在终端中运行以下命令启动项目: ``` npm run serve ``` 然后在浏览器中打开 `http://localhost:8080`,你将看到一个简单的待办事项列表应用程序。 这只是一个入门示例,你可以根据自己的需求进行扩展和修改。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值