Vue_3.0学习笔记

haimian
2025-02-15 / 0 评论 / 7 阅读 / 正在检测是否收录...

接下来我将会用大量篇幅去写vue的学习过程
首先如何写一个hello world

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <div id = 'app'> 
            <div>{{name}}</div>
        </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        //创建vue实例
        let app = new Vue({
            el:'#app',
            data:{
                name:'Hello World',
            }
        })
    </script>
</html>

m766t5af.png

接下来就是学习事件绑定,很简单,直接去调用即可
我这里举例说明一下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>VUE学习</title>
    </head>
    <body>
        <div id = 'app'>
            <!-- <div v-on:click="test1">点击</div>
            <button v-on:click="test2">点击</button> -->
            <button @click="test4">点击</button>
            <button v-on:click="test3('我喜欢你')">点击大胆表白</button>
        </div>
        <script src="vue.js"></script>
        <script>
            let app = new Vue({
                el:'#app',
                data:{
                    
                },
                methods:{
                    test1:function(){
                        console.log('点击')
                    },
                    test2(){
                        alert('点击1')
                    },
                    test3(name){
                        alert(name + '狗亲亲')
                    },
                    test4(e){
                        alert(e.target.innerHTML)
                    }
                }
            })
        </script>
    </body>
</html>

当我们点击test3的时候,会发现有alert的弹出,那么这就相当于出发了弹窗,触发了事件

那么我来详细的解释一下alert(e.target.innerHTML)这句话的详细含义,我先分开讲解,alert就是弹窗,e代表事件对象,那么target代表目标,触发事件的DOM模式。那么innerhtml就很好理解了。就说获取到内容。

接下来还要就是如果存在不同的情况下应该怎么办呢
直接上代码示例

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>VUE学习</title>
    </head>
    <body>
        <div id = 'app'>
            
            <button v-on:click="test5(11,$event)">点击</button> -->
        
        </div>
        <script src="vue.js"></script>
        <script>
            let app = new Vue({
                el:'#app',
                data:{
                    
                },
                methods:{
                    test5(x,y){
                        console.log(x);
                        alert(y.target.innerHTML);
                    }
                }
            })
        </script>
    </body>
</html>

可以很清楚的看到有一个$event的时间绑定用来出发,如何触发的和上面的内容是一样的可以自行查看

接下来新的内容就是关于循环判断还要分支
先写判断,

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <div id = 'app'>
            <div v-if="face>=80">长得漂亮</div>
            <div v-else-if="face >=70 && face <= 80">长得还行</div>
            <div v-else-if="face >=40 && face <70">长得能看</div>
            <div v-if="face <40">长得抽象</div>
        </div>
        <script src="js/vue.js"></script>
        <script>
            let app = new Vue({
                el:'#app',
                data:{
                    face:70
                }
            })
        </script>
    </body>
</html>

很清楚的可以看到内容的展示是
m78ogy12.png

接下来是v-for循环的写法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <div id = 'app'>
            <div v-if="face>=80">长得漂亮</div>
            <div v-if="face >=70 && face <= 80">长得还行</div>
            <div v-if="face >=40 && face <70">长得能看</div>
            <div v-if="face <40">长得抽象</div>
            <ul>
                <li v-for="it in hobby">{{it}}</li>
            </ul>
        </div>
        <script src="js/vue.js"></script>
        <script>
            let app = new Vue({
                el:'#app',
                data:{
                    face:70,
                    hobby:['篮球','足球','乒乓球']
                }
            })
        </script>
    </body>
</html>

这是一种写法,但是里面没KEY值,推荐加上,为什么呢,因为加上之后他的检索的速度更快,对于网站开发有利 当然不写也可以,但是最好写
如果是俩个怎么办呢?当然是有写法的。直接上代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <div id = 'app'>
            <div v-if="face>=80">长得漂亮</div>
            <div v-if="face >=70 && face <= 80">长得还行</div>
            <div v-if="face >=40 && face <70">长得能看</div>
            <div v-if="face <40">长得抽象</div>
            <ul>
                <li v-for="(it,id) in hobby">{{it}}{{id}}</li>
            </ul>
        </div>
        <script src="js/vue.js"></script>
        <script>
            let app = new Vue({
                el:'#app',
                data:{
                    face:70,
                    hobby:['篮球','足球','乒乓球'],
                }
            })
        </script>
    </body>
</html>

这样反馈回来的结果是
m78opt5a.png

接下来学习事件绑定

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>链接示例</title>
</head>
<body>
    <div id='app'>
        <a href="https://baidu.com">baidu一下</a>
        <a v-bind:href='url'>京东</a>
    </div>
    <script src="../day01/js/vue.js"></script>
    <script>
        let app = new Vue({
            el: '#app',
            data() {
                return {
                    url: 'https://www.jd.com'
                };
            }
        });
    </script>
</body>
</html>

我们可以很清楚的发现,url的值是可以改变的
或者可以这样写,我刚刚上面是AI修正后的结果,下面的版本更好一些

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>链接示例</title>
</head>
<body>
    <div id='app'>
        <a v-bind:href='url'>京东</a>
    </div>
    <script src="../day01/js/vue.js"></script>
    <script>
        let app = new Vue({
            el: '#app',
            data:{
                    url: 'https://www.jd.com'
            }
        });
    </script>
</body>
</html>

接下来你的页面应该弹出来
m79vmzxg.png

当然我们因此也可以做一些简单的修改,比如访问的时候根据按钮可以做一些简单的调整

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>链接示例</title>
</head>
<body>
    <div id='app'>
        <a v-bind:href='url'>京东</a><br />
        <a :href="url">京东</a><br />
        <button @click="ch">点击修改</button>
    </div>
    <script src="../day01/js/vue.js"></script>
    <script>
        let app = new Vue({
            el: '#app',
            data:{
                    url: 'https://www.jd.com'
            },
            methods:{
                ch(){
                    this.url='http://baidu.com'
                }
            }
        });
    </script>
</body>
</html>
0

评论 (0)

取消