资讯专栏INFORMATION COLUMN

Vue基本语法

ShevaKuilin / 1000人阅读

摘要:基本语法和组件传参基本语法是一个的框架数据驱动和组件化是的核心思想。这种语法为请输入代码语法这里是的值网页上就会显示出来里面的值。七和语言中的一样的语法效果。我花费了元运行结果如下图至此,讲完了的基本语法撒花

Vue基本语法和组件传参 基本语法

Vue是一个 MVVM 的框架,数据驱动组件化是Vue的核心思想。简单的讲MVVM框架就是:我们只需要在数据层做数据操作,显示层会检测到我们每次的数据变化,然后做出相应的改变,监测数据这个工作就是中间的ViewModel。通过这种模式,我们就可以不用再直接操作DOM节点来进行数据的改变。

一、插值

{{data}} 在模板里可以实现data数据的展示,如果data数据改变,展示的数据也会响应式的改变。响应式的改变意味着我们不需要强制刷新页面就可以实现数据的变化。这种语法为请输入代码Mustache语法

export default {
    name:"phonerisk",
    data(){
        return{
            title:"testTitle"
        }
    }
}


网页上就会显示出来data里面title的值。

二、v-html

v-html可以将一段HTML的代码字符串输出成HTML片段而不是普通的文本。

export default {
    name:"phonerisk",
    data(){
        return{
            html:"v-if"
        }
    }
}


网页上将html字符串渲染成颜色为蓝色的普通文本。

三、v-bind

Mustache·语法不能用于HTML上,所以我们需要绑定一些属之类的需要使用v-bindv-bind就是将data里面的数据绑定到HTML上面,从而实现属性的变化。

export default {
    name:"phonerisk",
    data(){
        return{
             imgUrl:"../../static/img/KFC.e66b2f8e.png"
        }
    }
}


v-bind 可以简写成 :

四、v-model

v-model是用于表单输入的数据双向绑定。所谓双向绑定就是视图层的数据变化会引起数据层数据的改变,相反的,数据层的变化也会导致视图层展示数据的变化。

export default {
    name:"phonerisk",
    data(){
        return{
            name:"小明"
        }
    },
    methods:{
        changeName(){
            this.name = "小花";
        }
    }
}

input输入框绑定name,输入框初始显示‘小明’,在输入框里更改信息的时候,name同时发生改变,点击按钮改变name数值的时候,输入框里面的数据同时发生改变。

五、v-on

v-on 用于监听DOM事件,如按钮的点击事件、双击事件等。v-on 的简写为 @,如下面的 @click 就等价为 v-on:click

template>
    
  methods:{
        yes(){
            alert("我有啥不敢的!!!");
        }
    }


这个案例是监听按钮的点击事件,点击之后调用 yes 函数,然后弹出警告框。

在平时的开发过程中我们可能会使用到 event.preventDefault() 或者 event.stopPropagation() 來阻止事件的继续传播,但是这个是直接操作DOM节点,不符合Vue的思想。所以Vue采用修饰符来进行相关的操作。下面我例举几个常用的,如了解更过,可以查看Vue的官网进行更详细的学习。

.stop

没有加修饰符
 methods:{
        yes(){
            alert("我有啥不敢的!!!");
        },
        div(){
            alert("我会DIV");
        }
    }

效果如下图:

加了 .stop 修饰符之后的效果

效果如下图:

.stop 修饰符阻止了事件的继续传播,所以子节点的 click事件没有冒泡到父节点,所以div的点击监听没有监听到内容。

.prevent

没有加修饰符
  

运行结果如下图:

加了 .prevent 修饰符之后的效果

.prevent 提交表单之后页面不在重新渲染。可以看到没加修饰符的时候页面重新加载,但是在加修饰符之后,页面不在重新加载。

.keyup


绑定到输入框里,可以直接按enter键就出发提交的方法,和点击提交按钮一样的效果,官网还提供了其他按键的别名

六、v-if

v-if用于做条件化的渲染,当组件的判断条件发生改变,这个组件会被销毁并重建。

```javascript
    data(){
        return{
            display:true
        }
    },
    methods:{
        changeShow(){
          this.display = !this.display;
        },
    }

```
运行结果如下图:

v-if绑定的变量为 true 的时候,其所在的元素会被渲染出来,反之亦然。

七、v-else、v-else-if

v-else 和C语言中的else一样的语法效果。如果条件变量不满足 v-if ,则执行 的内容

    
我叫001 我叫002

运行效果和上图一致。

v-else-if 是Vue2.1.0版本新增的一个属性。v-else-if 必须用在 v-ifv-else 之间才有效果。

 data(){
        return{
            display:1
        }
    },
    methods:{
        changeShow(){
            this.display = (this.display + 1)%3;
        },
    }

运行结果如下图:

八、v-show

v-show 是切换元素的 display 属性的。

 data(){
        return{
            display:true
        }
    },
    methods:{
        changeShow(){
            this.display = !this.display;
        },
    }

运行效果如下图:

九、v-for

v-for 用于多次渲染同一模板或者元素。

  • {{index}}、我的名字叫{{name}}
 data(){
        return{
           names:["jack","joe","Nancy", "lily"]
        }
    },

运行结果如下图:

v-for 多次渲染了li 里面的内容,循环遍历了names 数组,并将结放入 {{name}} 里面。

十、v-once

v-once 只渲染元素和组件一次,如果内容改变,也会将元素、组件视为静态元素跳过。

This will never change:{{msg}}
comment::: {{msg}}
  • {{i}}

This will change: This will never change:{{msg}}
comment::: {{msg}}
  • {{i}}
data() {
    return {
      msg: 111,
      names: ["jack", "joe", "Nancy", "lily"]
    };
  },
  methods: {
    changValue() {
      this.msg += 111;
      this.names[2] = "web";
    }
  }

运行效果如下图:

在点击按钮后, msg 会增加,但是上面有v-once指令的元素等则不会重新渲染。

十一、v-if和v-show的区别

前面讲了v-ifv-show,两个指令都是用在元素之间的显示和隐藏的切换,那么,这两个指令究竟有什么不同呢?接下来我将用一个示例来讲解他们之间的差异。

data() {
    return {
      display: true
    };
  },
  methods: {
    changeValue() {
      this.display = !this.display;
    }
  }
.content {
  display: inline-block;
  width: 100px;
  height: 100px;
  border: solid 1px black;
  background-color: red;
}
.content + .content {
  margin-left: 20px;
}

运行效果如下图:

从上图我们可以看出当display 为 false 的时候,v-ifv-show显示位置不一样。

首先我们解读一下这个代码的css:content类设置了div的长宽和背景色,dispaly属性为 inline-block,
.content + .content 设置了如果有两个content 类在一起的时候,后面一个的左边距为20个像素。

dispalytrue 的时候,两个div都靠左显示。

displayfalse 的时候,上面的div在原来的位置重新渲染,但是下面的div却有一个20像素的左边距。

所以v-if渲染的时候,不会将不符合条件的元素加载到DOM树里面,而v-show则会将所有的节点都加载到DOM树,然后根据条件,更改节点的display 属性,生成不同的渲染树。

一般来说, v-if需要更高的开销,每次都会改变DOM树,但是v-show 只需要改变元素的 display ,开销更低。

十二、v-for和v-if优先级问题

v-forv-if 在同一个蒜素里的时候,前者比后者有更高的优先级,所以我们在开发中一定要注意优先级的问题。

如果我们是想有条件的跳过循环中的某些项的时候:

data() {
    return {
      counts:[11,22,33,44,55,66]
    };

运行结果如下图:

跳过了count 小于 30 的项

2.如果我们是打算有条件的跳过循环的话那么我们应该将判断写在循环的外面,先判断条件。

运行结果如下图:

至此,讲完了Vue 的基本语法......撒花✿✿ヽ(°▽°)ノ✿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101173.html

相关文章

  • Vue.js基本语法的介绍

    摘要:当表达式的值发生变化时,响应应用特定的行为到。指的是否重复,对重复的进行服用循环中,表示数组第个元素表示对象的样式绑定样式也可以根据中的变量来动态确定。 介绍 前段时间接触到一个库叫做Vue.js, 个人感觉很棒,所以整理了一篇博文做个介绍。Vue读音/vju:/,和view类似。是一个数据驱动的web界面库。Vue.js只聚焦于视图层,可以很容易的和其他库整合。代码压缩后只有24kb...

    Jensen 评论0 收藏0
  • 前端知识点总结——VUE(持续更新中)

    摘要:前端知识点总结持续更新中框架和库的区别框架有着自己的语法特点都有对应的各个模块库专注于一点框架的好处提到代码的质量,开发速度提高代码的复用率降低模块之间的耦合度高内聚低耦合思维模式的转换从操作的思维模式切换到以数据为主概述是一个渐进式的构建 前端知识点总结——VUE(持续更新中) 1.框架和库的区别: 框架:framework 有着自己的语法特点、都有对应的各个模块库 library ...

    big_cat 评论0 收藏0
  • Vue.js中前端知识点总结笔记

    摘要:框架和库的区别框架有着自己的语法特点都有对应的各个模块库专注于一点框架的好处提到代码的质量,开发速度提高代码的复用率降低模块之间的耦合度高内聚低耦合思维模式的转换从操作的思维模式切换到以数据为主概述是一个渐进式的构建用户界面的框架小到的简单1.框架和库的区别: 框架:framework 有着自己的语法特点、都有对应的各个模块库 library 专注于一点 框架的好处: 1.提到代码的质...

    番茄西红柿 评论0 收藏0
  • 手把手教你从零写一个简单的 VUE--模板篇

    摘要:转换成为模板函数联系上一篇文章,其实模板函数的构造都大同小异,基本是都是通过拼接函数字符串,然后通过对象转换成一个函数,变成一个函数之后,只要传入对应的数据,函数就会返回一个模板数据渲染好的字符串。 教程目录1.手把手教你从零写一个简单的 VUE2.手把手教你从零写一个简单的 VUE--模板篇 Hello,我又回来了,上一次的文章教会了大家如何书写一个简单 VUE,里面实现了VUE 的...

    feng409 评论0 收藏0

发表评论

0条评论

ShevaKuilin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<