栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

vue的基本语法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vue的基本语法

2、模板语法 2.1 属性绑定

属性的绑定,下面先来看一下关于对属性的绑定

      

      {{msg}}          

在上面的代码中,我们通过v-bind的方式给h2绑定了一个title属性。

当然,上面的代码我们也可以使用如下的方式来进行简化

    
      

      {{msg}}          

为了避免闪烁的问题,也就是最开始的时候,出现:{{msg}}的情况,可以使用如下的绑定方式。

  
      

       {msg}} -->                  

3、 列表渲染

我们可以使用v-for指令基于一个数组来渲染一个列表.v-for指令需要使用item in items形式的语法。其中items 是源数组,而item则是被迭代的数组元素的别名。

基本实现的代码如下:



  
    
    
    列表渲染
  
  
    
      
                                   
  •         编号:{{item.id}} 姓名:{{item.name}}---索引:{{index}}        
  •      
              ​

注意:为了能够保证列表渲染的性能,我们需要给v-for添加key属性。key值必须唯一,而且不能使用index与random作为key的值。

关于这一点是与虚拟DOM算法密切相关的。在后面的课程中会最为一个重点来探讨虚拟DOM的内容。这也是面试的时候经常被问到的问题。

4、v-model

在前面讲解vue简介的时候,我们说过,如果model中的数据发生了改变,会通过ViewModel通知View更新数据,这个效果前面我们也已经演示了,现在演示一下当view中的数据发生了变化后,怎样通过ViewModel来通知model来完成数据的更新。

其实这就是我们常说的,“双向数据绑定”

怎样实现这种效果呢?可以通过v-model来实现。

  
  

具体代码实现如下:



  
    
    
    
    双向数据绑定
    
  
​
  
    
      
    
    
  

​

怎样验证v-model实现了双向数据绑定呢?

可以打开控制台,然后输入:vm.userName 发现输出的值为"zhangsan", 取的是模型中的数据。

当在文本框中输入新的值后,在敲一下vm.userName发现对应的数据发生了变化,也就是视图中的数据发生了变化,模型中的数据也 会发生变化。

那么在控制台中直接给vm.userName="lisi",发现文本框中的值也发生了变化。

关于v-model 这个知识点,面试的时候经常会被问到的一个问题就是,自己能否模拟实现一个类似于v-model的双向数据绑定的效果。关于这个问题你可以先思考一下,在后面的课程中,我们会详细的讲解。

5、v-on

怎样监听dom的事件呢?可以通过v-on指令完成,具体的代码如下:




    
    
    
    Document
    

​

    
        {{name}}
        
        
    
    

还可以通过简写的形式。建议以后都使用简写的形式

带参数的形式如下:


​
​

除了绑定鼠标的单击事件以外,也可以绑定键盘的实际。

例如,页面有有一个文本框,用户在该文本框中输入内容,按下回车键,获取到用户输入的内容。

      {{name}}
      
      
      
    
      
    

在mehtods中定义changeUserName方法

 // 通过methods完成函数或方法的定义
        methods: {
          changeName() {
            // 在methods中要获取data中的属性,需要通过this来完成,this表示的是vue实例。
            this.name = "itcast";
          },
          changeNameByArg(userName) {
            this.name = userName;
          },
             //定义处理文本框键盘事件的方法。
          changeUserName() {
            console.log(this.name);
          },
        },

在上面的案例中,我们使用了按键的修饰符:.enter,在官方文档中,还有其它的按键修饰符,如下所示:

https://cn.vuejs.org/v2/guide/events.html#%E6%8C%89%E9%94%AE%E4%BF%AE%E9%A5%B0%E7%AC%A6

与之相关的就是事件修饰符,如下所示:

https://cn.vuejs.org/v2/guide/events.html#%E4%BA%8B%E4%BB%B6%E4%BF%AE%E9%A5%B0%E7%AC%A6

以上内容,大家可以在课下的时候,仔细看一下。

6、Class与Style绑定

这块主要内容主要与样式设置有关。

操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是 attribute,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。

下面先来看一下Class的绑定。

在"列表渲染"中给每个列表项添加对应的样式。

   

下面给li列表添加上面所定义的样式。

  
  • 编号:{{item.id}} 姓名:{{item.name}}---索引:{{index}}
  • 在上面的代码中,我们可以看到,给li标签绑定了class属性,同时actived的值为true,表示给li添加actived样式。

    现在有一个需求,就是当鼠标移动到列表项上的时候,更改对应的背景色。

            
  • 在对class进行绑定的时候,做了一个判断,判断一下selectItem是否与item相等,如果相等添加样式。

    当鼠标移动到某个li 列表上的时候,触发mousemove事件,将item的值给selectItem.

    在data中定义selectItem.

    如下所示:

      data: {
              selectItem: "",
              users: [
                {
                  id: 1,
                  name: "张三",
                },
                {
                  id: 2,
                  name: "李四",
                },
                {
                  id: 3,
                  name: "老王",
                },
              ],
            },

    完整 代码如下:

    
    
      
        
        
        列表渲染
        
      
      
        
          
                                     
    •         编号:{{item.id}} 姓名:{{item.name}}---索引:{{index}}        
    •      
                  ​

    下面,我们再来看一下Style的绑定。

    ​
            
  •         编号:{{item.id}} 姓名:{{item.name}}---索引:{{index}}        
  • 通过上面的代码,可以看到通过绑定style的方式来处理样式是非常麻烦的。

    7、条件渲染

    v-if和v-show指令可以用来控制元素的显示和隐藏

    下面,我们先来看一下v-if的应用。

    这里还是对用户数据进行判断。

        
          

    没有任何用户数据

    ​      
                                     {item.id}} 姓名:{{item.name}}---索引:{{index}}         --> ​        
    •         编号:{{item.id}} 姓名:{{item.name}}---索引:{{index}}        
    •      
       

    在上面的代码中,我们首先对users数组做了一个判断,如果没有数据,就在页面上展示:“没有任何用户数据”

    否则渲染整个列表。

    上面是关于v-if的使用,下面看一下v-show.

    v-show 是通过css属性display控制元素显示,元素总是存在的。

    v-if:通过控制dom来控制元素的显示和隐藏,如果一开始条件为false,元素是不存在的。

    什么时候使用v-show,什么时候使用v-if呢?

    如果需要频繁的控制元素的显示与隐藏,建议使用v-show. 从而避免大量DOM操作,提高性能。

    而如果某个元素满足条件后,渲染到页面中,并且以后变化比较少,可以使用v-if

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/1007572.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号