Vue基本使用

发布时间 2023-09-18 20:42:57作者: 大灰Shui不着

一  模板语法

插值语法:{{变量,js语法,三目表达式}}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>插值</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body>

<div id="box">
    <ul>
        <li>字符串:{{name}}</li>
        <li>数值:{{age}}</li>
        <li>数组:{{list1}}</li>
        <li>对象:{{obj1}}</li>
        <li>字符串:{{link1}}</li>
        <li>运算:{{10+20+30+40}}</li>
        <li>三目运算符:{{10>20?'是':'否'}}</li>
    </ul>
</div>

</body>
<script>
    let vm = new Vue({
        el: '#box', // 在box这个div中可以写 vue的语法
        data: {
            name: 'Darker', // 字符串
            age: 18, // 数值
            list1: [1,2,3,4],   // 数组
            obj1: {name: 'Darker', age: 19}, // 对象
            link1: '<a href="https://www.baidu.com">百度一下 你就知道</a>'
        }
    })
</script>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello World 的实现</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body>
    <div id="box">
        {{s}}
    </div>
    <script>
        let vm = new Vue({
            el: '#box',
            data: {
                s: 'Hello World'
            }
        })
    </script>
</body>
</html>

 

二  指令

1)文本指令

v-text:把字符串内容渲染到标签内部

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文本指令之v-text</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body>
    <div id="box">
        <p v-text="name"></p>
    </div>
    <script>
        let vm = new Vue({
            el: '#box',
            data: {
                name: 'v-text',
            }
        })
    </script>
</body>
</html>

v-html:把字符串内容渲染到标签内部,如果是标签字符串,会渲染成标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文本指令之v-html</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body>
    <div id="box">
        <p v-html="link"></p>
    </div>
    <script>
        let vm = new Vue({
            el: '#box',
            data: {
                link: '<a href="https://www.baidu.com">百度一下 你就知道</a>',
            }
        })
    </script>
</body>
</html>

 

v-show:控制标签显示与否,通过style的display是否等于none控制,在html中标签仍存在

v-if:控制标签显示与否,直接dom操作,删除/插入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文本指令之v-show和v-if</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body>
    <div id="box">
        <p v-show="isShow">v-show</p>
        <p v-if="isIf">v-if</p>
    </div>
    <script>
        let vm = new Vue({
            el: '#box',
            data: {
                isShow:true,
                isIf:true
            }
        })
    </script>
</body>
</html>

 

2)事件指令

v-on使用:v-on:事件='函数',可简写为 @事件='函数'

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件指令</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body>
    <div id="box">
        <button v-on:click="Click1">Click1</button>
        <button @click="Click2">Click2</button>
    </div>
    <script>
        let vm = new Vue({
            el: '#box',
            data: {},
            methods: {
                Click1(){
                    alert('Click1')
                },
                Click2(){
                    alert('Click2')
                },
            }
        })
    </script>
</body>
</html>

 

3)属性指令

v-bind使用:v-bind:属性='变量',可简写为 :属性='变量'

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性指令</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
    <style>
        .red {
            color: red;
        }
        .blue {
            color: blue;
        }
    </style>
</head>
<body>
    <div id="box">
        <button @click="Click">点我变色</button>
        <div :class="isActive?'red':'blue'">
<!-- isActive?'red':'blue' 三目运算符,条件?结果1:结果2 若条件成立则为结果1,反之为结果2 -->
            <h1>一个div</h1>
        </div>
    </div>
    <script>
        let vm = new Vue({
            el: '#box',
            data: {
                isActive: true
            },
            methods: {
                Click() {
                    this.isActive = !this.isActive
                },
            }
        })
    </script>
</body>
</html>

 

三