Vue基础

一.引入Vue包

Vue官网中直接复制Vue代码,开发版本,生产版本的区别和jQuery一致

放入自己新建的js文件中

二.创建一个Vue实例对象

const dom = new Vue({    //dom为html中dom元素的ID

        el:"#app",        //关联dom元素,可以理解为选择器

        data:{            //传入dom元素中的数据,内部包含在 DOM 中可能使用的属性

            msg:"你好,中国!"        //传入DOM元素中的属性

        }

    })

三.插值表达式(胡子语法)    --    {{}}

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

const app = new Vue({

    el:"#app",

    data:{

        msg:"你好,中国!",    //所有在dom需要用的数据都要事先在此声明,而且必须要实例化Vue对象

    }

})

四.基础指令

1.v-text    --    dom元素中插入文本内容

<div id="app" v-text="msg"></div>    --    div标签内容为实例化Vue中声明的msg属性

<div id="app" v-text>{{msg}}</div> 

实例化Vue对象...

2.v-html    --    dom元素中插入html标签和文本内容(不推荐使用)

<div id="app" v-html="msg"></div>    --    div标签内容为实例化Vue中声明的msg属性

<div id="app" v-html>msg</div>

实例化Vue对象...

注意!此指令会解析script标签内的代码,容易有注入风险,也叫xss攻击,Vue框架也已经帮我们禁止在msg里传入script标签,尽量不要使用

3.v-cloak    --    dom元素加载时,会先加载{{}},再解析Vue中的JS语法,在style中事先书写v-cloak的CSS样式,该指令在元素渲染完成以后,Vue 会自动的删除 v-clock 这个属性

<style>

    [v-cloak] {    //事先声明v-cloak属性的CSS样式为隐藏,不会加载{{}},等待加载完毕后,会自动删除  

        display: none;

    }

</style>

<div id="app" v-cloak>{{msg}}</div>    //不支持<div id=“app” v-cloak="msg"></div>写法

4.v-pre    --    获取原始信息

<div id="app" v-pre>{{ msg }}</div>    输出结果为{{msg}},不会解析msg属性

不支持 <div id=“app” v-pre="msg"></div>写法

5.v-once    --    只读取执行一次,后面再改变,他不改变

<div id="app" v-once>{{ msg }}</div>     如果绑定了事件,改变了msg的值,只改变第一次,因为页面渲染的时候已经改变了msg的值,所以这里改变也不生效

不支持<div id="app" v-once =“msg”></div>写法

五.动态绑定属性    v-bind:

<div id="app" v-bind:href="href" v-bind:target="target"></div>

const app = new Vue({

        el:"#app",

        data:{

            href:"https://baidu.com",

            target: "_blank",

        }

    })

简写方法    :

<div id="app" :href="href" :target="target"></div>

六.动态绑定事件    v-on:

<div id="app">

    <button v-on:click="sayHello">点我试试</button>

    <button v-on:click="alert('你好,新中国')">点我试试</button>    //直接输出alert()他会理解为在Vue实例对象中有alert方法

</div>

const app = new Vue({

        el: "#app",

        data: {

            num: 1

        },

        methods: {

            sayHello() {

                window.alert("你好中国!")

            },

            alert(msg) {

                window.alert(msg)

            }

        }

    })

简写方法    @

<button @click="sayHello">点我试试</button>

七.事件绑定修饰符

直接书写在绑定的事件方法后

1.  .stop    --    阻止事件冒泡

<div class="child" @click.stop="sayChild"></div>    //阻止事件冒泡

2.  .prevent    --    阻止事件默认行为

<a href="https://baidu.cn" @click.prevent="sayByby">点击我不想去百度</a>    //阻止事件默认行为

注意:两种方法可以串联使用

<a href="https://baidu.cn" @click.stop.prevent="sayByby">点击我不想去百度</a>

八.按键修饰符

.enter -- 回车

 .tab -- Tab切换按钮

.delete  -- 捕获“删除”和“退格”键

 .esc -- esc退出按钮

 .space -- 空格键

 .up -- 上键

 .down -- 下键

.left -- 左键

 .right -- 右键

使用 keyCode attribute 也是允许的(直接使用按键代表的数字)

    <input v-on:keyup.13="submit">

按键修饰符,同时按键修饰符也可以 串联

    <input v-on:keyup.13.prevent="submit">

八.循环指令

v-for     一般用来遍历data中的对象数组

//item自己定义名称,但是js语法""中的item改变{{}}中的item也要修改.并且 需要给每一个元素加一个 key 属性,目的是为了让 Vue 能够标记识别每一个 li 元素,方便后续的 更新、删除、添加 等操作

<li v-for="item in arrList" :key="index">{{ item }}</li>    

data:{

            arrList: ["蜡笔小新","迪迦奥特曼","辣椒油","辣椒酱","宫保鸡丁"],

        },


九.分支指令

v-if    在指令里面是一个表达式,可以使用js语法

<div v-if="showTag">内容显示</div>

data:{

            // 设置一个 布尔值,用来显示、隐藏页面,如果为false,不显示div内容,如果为true则显示

            showTag: false,

}

使用js语法也可以实现

    <div v-if="true">内容显示</div>

<div v-if="num >90">肥胖</div>

<div v-else-if="num >60">微胖</div>

<div v-else>苗条</div>    //因为data数据中的num所以只会显示第三个div

data:{

    num:50

}

v-show    

<div v-show="showTag">内容显示</div>    也可以显示div内容

v-show 和  v-if  的区别

v-if 条件不成立的部分 html 结构都不会渲染

V-show 会添加一个 display:"none" 属性

template标签

和v-if和v-show配合使用,替换原有的遍历标签,它只是占位使用不会被解析

<ul>    //原本写法

    <li v-if="判断条件">1</li>

    <li v-else>2</li>

</ul>

<ul>        //template写法

    <template v-if="判断条件">1<template>

    <template v-else>2</template>

</ul>

十. v-model     双向数据绑定

该指令在表单中才有意义,能获取实时更新,当表单框或其他表单控件内容改变时data里面的msg也会改变

页面中其他的msg也会跟着data中的msg改变

<h1>{{msg}}</h1>

<input type="text" v-model="msg">

data:{

            msg:"你好,中国!",

}

十一.v-model的修饰符

1.trim 来确保内容输入祛除首尾空白    --    防止用户误操作

2.lazy 来更改 input 事件 为 change 事件    --    失去焦点才触发

3.number 来确保用户输入的是一个 number 类型

4.串联操作

    所有修饰符都能一起串联也能和v-model一起使用

    <input type="text" v-model.trim.number.lazy="msg">

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ### 什么是Vue.js + Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(Reac...
    JLong阅读 1,373评论 0 0
  • Vue全家桶之Vue基础 一、Vue概述 Vue:渐进式JavaScript框架 声明式渲染-组建系统-客户端路由...
    coder_shen阅读 419评论 0 1
  • Vue 基础-day02-重点 01-基础-系统指令-v-bind-绑定 class-对象语法 :class="{...
    这是这时阅读 147评论 0 0
  • 相关概念 混合开发和前后端分离 混合开发(服务器端渲染) 前后端分离后端提供接口,前端开发界面效果(专注于用户的交...
    他爱在黑暗中漫游阅读 3,028评论 4 45
  • Vue的基础入门 一、Vue的基础入门 简介作者:尤雨溪 版本:2.X版本 预估4-5月份3.0版本会发布 官网...
    learninginto阅读 604评论 0 7

友情链接更多精彩内容