VUE快速入门-基本语法

一、 不使用构建工具

1. 导入vue.js的script 脚本文件

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

2. 在页面中声明一个将要被vue所控制的DOM区域,即MVVM中的view

 <div id="app">
        {{ message }}
    </div>

3. 创建vm实例对象(vue实例对象)

<script>
          const { createApp } = Vue

          createApp({
         //指定数据源,即MVVM中的Model
          data() {
            return {
              message: 'Hello Vue2!'
            }
          }
        }).mount('#app') //指定当前vue实例要控制页面的那个区域
      </script>

4. 完整代码(跟上面写法不同,但是意思一样)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 1.导入vue的脚本文件 -->
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <!-- 2. 声明要被vue所控制的DOM区域 -->
    <div id="app">
        {{ message }}
    </div>
    <!-- 3. 创建vue的实例对象 -->
    <script>
          const hello ={
            //指定数据源,即MVVM中的Model
                data:function() {
                    return {
                            message: 'Hello Vue!'
                    }
                }
           }

           const app=Vue.createApp(hello);
           app.mount('#app') //指定当前vue实例要控制页面的那个区域
      </script>
</body>
</html>

二、内容渲染指令

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="app">
        <p>姓名: {{ username }}</p>
        <p>性别: {{ gender }}</p>
        <p>{{ desc }}</p>

        <p v-html="desc"></p>
    </div>

    <script>
        const vm={
            data:function(){
                return {
                    username:'张阿三',
                    gender:'男',
                    desc:'<a href="https://www.baidu.com/">百度</a>',
                }
            }
        }
        const app=Vue.createApp(vm);
           app.mount('#app')
    </script>
</body>
</html>

三 、属性绑定指令

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <div id="app">
        <a :href="link">百度</a>
        <input type="text" :placeholder="inputValue">
        <img :src="imgSrc" :style="{width: w}" alt="">
    </div>

    <script>
        const vm={
            data:function(){
                return {
                    link:'https://www.baidu.com',
                    //文本框的占位符内容
                    inputValue:'请输入数据',
                    imgSrc: './image/demo.png',
                    w: '500px',
                }
            }
        }

        const app=Vue.createApp(vm);
           app.mount('#app')
    </script>
</body>
</html>

四、使用Javascript表达式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <!-- vue实例控制的DOM区域 -->
    <div id="app">
         <p>{{number+1}}</p>
         <p>{{ok ? 'True ':'False'}}</p>
         <p>{{message.split('').reverse().join('')}}</p>
         <p :id="'list-'+id">xxx</p>
         <p>{{user.name}}</p>

    </div>

    <script>
        const vm={
            data:function(){
                return {
                    number:11,
                    ok:true,
                    message: 'ABC',
                    id: 3,
                    user:{
                        name:'zs',
                    }
                }
            }
        }

        const app=Vue.createApp(vm);
           app.mount('#app')
    </script>
</body>
</html>

五、事件绑定指令

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <!-- vue实例控制的DOM区域 -->
    <div id="app">
        <h3>count的值{{count}}</h3>
        <button v-on:click="addCount">+1</button>
        <button @click="count+=1">+1</button>
    </div>

    <script>
        const vm={
            data:function(){
                return {
                    count:0,
                }
            },

            methods:{
                //点击按钮,让count自增+1
                addCount(){
                    this.count+=1
                },
            }
        }

        const app=Vue.createApp(vm);
           app.mount('#app')
    </script>
</body>
</html>

六、 条件渲染指令

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <!-- vue实例控制的DOM区域 -->
    <div id="app">
        
        <button @click="flag=!flag">Toggle Flag</button>

        <!-- 如果flag为false,标签不会被创建 -->
        <p v-if="flag">请求成功--- 被v-if控制</p>

        <!-- 如果flag为false,标签会被创建 ,通过css样式来改变,频繁被切换使用这个-->
        <p v-show="flag">请求成功--- 被v-show控制</p>
    </div>

    <script>
        const vm={
            data:function(){
                return {
                    flag:false,
                }
            },

            methods:{
                //点击按钮,让count自增+1
                addCount(){
                    this.count+=1
                },
            }
        }

        const app=Vue.createApp(vm);
           app.mount('#app')
    </script>
</body>
</html>

七、 v-else和v-else-if指令

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <!-- vue实例控制的DOM区域 -->
    <div id="app">
        
        <p v-if="num>0.5">随机数>0.5</p>
        <p v-else>随机数<=0.5</p>
        <hr/>

        <p v-if="tyep=='A'">优秀</p>
        <p v-else-if="tyep=='B'">良好</p>
        <p v-else-if="tyep=='C'">一般</p>
        <p v-else>极差</p>

        
        <div  v-show="a">
            测试
        </div>
        <button @click="a=!a">点击</button>
        
    </div>

    <script>
        const vm={
            data:function(){
                return {
                    a:false,
                    num:Math.random(),
                    tyep:'B'
                }
            },

        }

        const app=Vue.createApp(vm);
           app.mount('#app')
    </script>
</body>
</html>

八、列表渲染指令

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <!-- vue实例控制的DOM区域 -->
    <div id="app">
        
        <ul>
            <li v-for="(user,i) in userList ">索引是:{{i}},姓名是:{{user.name}}</li>
        </ul>
       
    </div>

    <script>
        const vm={
            data:function(){
                return {
                    userList:[
                        { id: 1,name:'zhangsansan'},
                        { id: 2,name:'lisi'},
                        { id: 3,name:'wangwu'}
                    ]
                }
            },

        }

        const app=Vue.createApp(vm);
           app.mount('#app')
    </script>
</body>
</html>

九、 v-for中的key

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
</head>
<body>
    <!-- vue实例控制的DOM区域 -->
    <div id="app">
        
       <!-- 添加用户区域 -->
       <div>
            <!-- v-model进行双向绑定,:value进行单向绑定 -->
            <input type="text" v-model="name">
            <button @click="addNewUser">添加</button>
       </div>
       
       <!-- 用户列表区域 -->
       <ul>
        <!--  :key="user.id"不使用这个会导致选择的记录改变 -->
        <li v-for="(user,index) in userList " :key="user.id">
            <input type="checkbox" >
            姓名是:{{user.name}}
        </li>
    </ul>
   
    </div>

    <script>
        const vm={
            data:function(){
                return {
                    //用户列表
                    userList:[
                        { id: 1,name:'zhangsansan'},
                        { id: 2,name:'lisi'}
                    ],
                    //输入的用户名
                    name:'',
                    //下一个可用的id
                    nextId:3
                }
            },
            
            methods:{
                //点击了添加按钮
                addNewUser(){
                    this.userList.unshift({ id: this.nextId,name:this.name})
                    this.name=''
                    this.nextId++
                },
            }

        }

        const app=Vue.createApp(vm);
           app.mount('#app')
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值