Vue基础指令

在vue中,指令带有前缀v-,以表示它们是Vue提供的特殊特性。它们会在渲染DOM上应用特殊的响应式行为。

v-bind:绑定一个元素

例子:
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body> 

<div id="app">
    <!--span 标签的title属性-->
    <span v-bind:title="message">鼠标停留几秒查看此处动态绑定的提示信息</span>
</div>

<!--1、导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
            message:"first vue!"
        }
    });
</script>

</body>
</html>
上面v-bind指令的意思:将这个元素节点的title特性和vue实例的message属性保持一致。

条件判断语句

v-if:

v-else:

例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <h1 v-if="ok">Yes</h1>
    <h1 v-else>No</h1>
</div>

<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
            ok: true
        }
    });
</script>

</body>
</html>
v-else-if
例子:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <h1 v-if="type==='A'">A</h1>
    <h1 v-else-if="type==='B'">B</h1>
    <h1 v-else>C</h1>
</div>

<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>

    var vm = new Vue({
        el:"#app",
        data:{
            type: 'A'
        }
    });
</script>

</body>
</html>

循环

v-for

例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <!--item:遍历的每一项; items:下面写的items-->
    <li v-for="item in items">
        {{item.message}}

    </li>
</div>
<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            items: [
                {message: 'Vue'},
                {message: 'Vue前端'}
            ]
        }
    });
</script>
</body>
</html>

监听事件

v-on

例子:

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <!--属于标签,得导入约束-->
    <!--绑定click事件,并指定名为firstMethods的方法-->
    <button v-on:click="firstMethods">click this</button>
</div>

<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>

    var vm = new Vue({
        el: "#app",
        data: {
            message: "2021/7/25 11:20:11"
        },
        methods: {
            //方法必须定义在vue的methods对象中,v-on事件
            firstMethods: function (event) {
                alert(this.message);
            }
        }
    });
</script>

</body>
</html>
 
双向数据绑定
v-model,v-model指令在表单<input>、<textarea>、<select>元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。他负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。
   注意:v-model会忽略所有表单元素的value、checked、selected特性的初始值而总是将vue实例的数据作为数据来源。你应该通过JavaScript在组件的data选项中声明初始值!
例子:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    请输入内容:<input type="text" v-model="message">{{message}}    <br>
    性别:
    <input type="radio" name="sex" value="男" v-model="checked"> 男
    <input type="radio" name="sex" value="女" v-model="checked"> 女
    <p>
        选中值: {{checked}}
    </p>
    <br>
    <select name="" id="" v-model="selected">
        <option value="null">--请选择--</option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
    <span>value:{{selected}}</span>
</div>
<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            /* 默认值 */
            message: "草团子",
            checked: '',
            selected: ''
        }
    });
</script>
</body>
</html>
 
组件
组件是可复用的vue实例,就是一组可以重复使用的模板,跟JSTL的自定义标签、thymeleaf的th:fragment等框架有着异曲同工之妙。通常一个应用会以一颗嵌套的组件树的形式来组织
例如,你可能会有页头、侧边栏、内容区等组件,每个组件又包含了其他的像导航链接、博文之类的组件。
例子:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自定义标签</title>
</head>
<body>
<div id="app">
    <!--组件:传递给组件中的值:props-->
    <substitute v-for="study in items" v-bind:study="study"></substitute>
</div>
<!--导入vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    //定义一个vue的组件component
    //template:模板   props:接收参数
    Vue.component("substitute",{
        props: ['study'],
        template: '<li>{{study}}</li>'
    });
    var vm = new Vue({
        el: "#app",
        data: {
            items: ["vue","前端","后期进阶"]
        }
    });
</script>
</body>
</html>

想要详细了解Vue的话,视频链接:https://www.bilibili.com/video/BV18E411a7mC

博客链接:https://blog.csdn.net/DDDDeng_/article/details/107475920

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值