vue实战学习(一)第一个Vue程序

vue基础学习笔记

摘自: vue.js官方网站极客时间的vue开发实战视频

1.script 的 src属性值可分为:

  • 开发版本:包含完整的警告和调试模式
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  • 生产版本:删除了警告,33.30KB min+gzip
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>

在vscode编辑第一个vue页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">{{message}}</div> <!-- 这里的双括号使用的是mustache模板渲染引擎--->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm= new Vue({//Vue 会被注册为一个全局变量
            el:"#app",
            data:{
                message:"hello world"
            }
        })
    </script>
</body>
</html>

浏览器打开,页面打印出hello world

控制台改变message的值,页面内容也实时改变
在这里插入图片描述

mustache实现字符串拼装

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

浏览器页面效果
在这里插入图片描述

v-bind指令

新增一个div <div id="message" ></div> 浏览器访问id值为message,使用v-bind后id值为vm.message值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">{{message}} {{message +message}}
        <div v-bind:id='message'></div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm= new Vue({
            el:"#app",
            data:{
                message:"hello world"
            }
        })
    </script>
</body>
</html>

浏览器访问为:
浏览器检查元素
简写一个冒号“:” <div :id="message" > </div>

v-bind也可以运用到class、href、src 等属性上,新建一个home.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
</head>
<body>
    <div id="app">
        <div :title="message" :class="{class1:isTrue,'class2':haha}">sssss</div>
        <div :class="sssss">lllll</div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm=new Vue({
            el:"#app",
            data:{
                message:'hi 请检验',
                isTrue:true,
                class1:'icon',
                haha:true,
                sssss:'hat'
            },
        })

    </script>
</body>
</html>

浏览器显示结果:一个div的class值为 class1 class2 ,而不是 icon class2
在这里插入图片描述

v-if 、v-else指令

v-if可以实现条件渲染,Vue会根据表达式的值的真假条件来渲染元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <ul>
            <li>
                <span v-if="item.flag">{{item.title}}</span>
                <span v-else style="text-decoration:line-through">{{item.title}}</span>
                <!-- <span v-else="!flag">{{item.title}}</span>错误示例 -->
            </li>
        </ul>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm= new Vue({
            el:"#app",
            data:{
                item: {
                    title:'解除隔离',
                    flag:true
                }
            }
        })
    </script>
</body>
</html>
v-show

v-show也是用于根据条件展示元素。和v-if不同的是,如果v-if的值是false,则这个元素被销毁,不在dom中。但是v-show的元素会始终被渲染并保存在dom中,它只是简单的切换css的dispaly属性。

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">{{message}} {{message +message}}
        <div v-bind:id='message'></div>
        <div v-show="show">hi</div>
       
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm= new Vue({
            el:"#app",
            data:{
                message:"hello world",
                show:false
            }
        })
    </script>
</body>
</html>
v-for

解释:数据都放到data:{ } 里,字符串用message:" 字符串内容" 示例data:{message:"hello world"} ;对象用{} 示例data:{ item:{ title:"图书",flag:true}} ;数组用[ ] ,示例data :[{title :"图书"},{title: "陶瓷"}]
用v-for指令根据遍历数组来进行渲染
有下面两种遍历形式

<div v-for="(item,index) in items"></div>   //使用in,index是一个可选参数,表示当前项的索引
<div v-for="item of items"></div>

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">{{message}} {{message +message}}
        <div v-bind:id='message'></div>
        <ul>
            <li  v-for="item of list"> 
                <span v-if="item.flag">{{item.title}}</span>
                <span v-else style="text-decoration:line-through">{{item.title}}</span>
            </li>
        </ul>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm= new Vue({
            el:"#app",
            data:{
                message:"hello world",
                list:[
                    {
	                    title:'解除隔离',
	                    flag:true
                    },
                    {
                        title:'可以出去买菜下·',
	                    flag:false
                    }
                ]
            }
        })
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值