1.模板语法的概述

  (1)如何理解前端渲染

    将数据填充到HTML标签中,生成静态的HTML内容

2.前端渲染方式

  (1)原生JS拼接字符串

  (2)使用前端模板引擎

  (3)使用Vue特有的模板语法

3.Vue模板语法

  (1)插值表达式

  (2)指令

  (3)事件绑定

  (4)属性绑定

  (5)样式绑定

  (6)分支循环结构

4.指令

  (1)什么是自定义属性?

  (2)指令的本质就是自定义属性

  (3)指令的格式:以v-开头

5.指令介绍

  (1)v-cloak指令用法

    插值表达式存在的问题:当浏览器卡顿时,刷新页面,会出现双大括号问题

    解决对策:使用v-cloak指令

    解决该问题的原理:先隐藏样式的内容,之后在内存中进行值的替换,替换好之后再显示最终效果

  (2)数据绑定指令

    (2.1)v-text 填充纯文本

      相比插值表达式更加简洁

    (2.2)v-html

      本身存在问题,会遭到XSS攻击

      本网站内部数据可以使用,来自第三方的数据不可使用

    (2.3)v-pre填充原始信息

      跳过编译过程,显示原始信息

   (3)数据响应式

    (3.1)如何理解数据响应式?

      HTML5中的数据响应式: 由于屏幕尺寸的变化导致样式的变化

      数据的响应式: (数据的变化导致页面内容的变化)

    (3.2)什么是数据绑定?

      将数据填充到标签中

    (3.3)v-once 只编译一次

      显示内容之后不再具有响应式的功能

  (4)双向数据绑定指令

    (4.1)什么是双向数据绑定

      页面内容的变化引起模型数据的变化

      模型数据的变化引起页面内容的变化

    

    (4.2)双向数据绑定指令v-model

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

    其中的v-model的值是模型数据的值

    (4.3)MVVM设计思想

      M(Model)、V(View)、VM(View-Model)

      View(DOM)  ---(DOM Listener)--->   Model(JavaScript Object)

              <---(Data Bindings)---

2022年01月14日08:35:02

  (5)事件绑定

    (5.1)Vue如何处理事件?

       v-on指令用法

1 <button v-on:click='num++'>点击</button>

       v-on简写形式

1 <button @click='num++'>点击1</button>

    (5.2)事件函数的调用方式

      在定义的Vue实例中使用methods在其中写事件函数

      直接绑定函数名称

1 <button v-on:click='handle'>点击2</button>

      调用函数

1 <button v-on:click='handle()'>点击3</button>

    (5.3)事件函数参数传递

      普通参数和事件对象

1 <button v-on:click='handle2(123,456,$event)'>点击2</button>     
      事件绑定-参数传递
        1、如果事件直接绑定函数名称,那么默认会传递事件对象作为事件函数的第一个参数
        2、如果事件绑定函数调用,那么事件对象必须作为最后一个参数显示传递,并且事件对象的名称必须是$event
      

        event.target.tagName    输出标签名
        event.target.innerHTML    输出标签中的内容
 
    (5.4)事件修饰符
      .stop      阻止冒泡
      传统的原生JS通过事件对象.stopPropagation()来阻止冒泡
1 <button v-on:click.stop='handle1'>点击1</button>
      .prevent  阻止默认行为
      传统的原生JS通过事件对象.preventDefault()来阻止默认行为
1 <a href="https://www.baidu.com" v-on:click.prevent='handle2'>百度</a>

    (5.5)按键修饰符

      .enter 回车键  

1 <input type="text" v-model='pwd' v-on:keyup.enter='handleSubmit'>

      .delete 删除键

1 <input type="text" v-model='uname' v-on:keyup.delete='clearContent'>

  

    (5.6)自定义按键修饰符

      全局 config.keyCodes对象

1 Vue.config.keyCodes.aaa = 65;

    (5.7)属性绑定

      v-bind指令用法

1 <a v-bind:href="url">百度</a>

      缩写形式

1 <a :href="url">百度1</a>

      v-model底层原理实现分析

1 <input type="text" v-bind:value="msg" v-on:input='msg=$event.target.value'>

    (5.8) 样式绑定

      class样式处理

        对象语法

1 <div v-bind:class="{active:isActive,error:isError}">测试样式</div>

        数组语法

1 <div v-bind:class="[activeClass,errorClass]">测试样式</div>

      

      style样式处理

        对象语法

1 <div v-bind:style='{border:borderStyle, width:widthStyle, height:heightStyle}'></div>

        数组语法

1 <div v-bind:style='[objStyles,overrideStyles]'></div>

    

    (5.9) 分支结构

       v-if

       v-else

       v-else-if

       v-show: v-show的原理:控制元素样式是否显示 display:none

      

1 <div v-if='score>=90'>优秀</div>
2 <div v-else-if='score<90 && score >=80'>良好</div>
3 <div v-else-if='score<80 && score >60'>一般</div>
4 <div v-else>不及格</div>

       v-show与v-if的区别

         (1)v-if控制元素是否渲染到页面

         (2)v-show控制元素是否显示(已经渲染到页面)

       

    (5.10)循环结构

      v-for遍历数组

1 <li v-for='item in fruits'>{{item}}</li>
2 <li v-for='(item,index) in fruits'>{{item + '-------' + index}}</li>

      key的作用:帮助vue区分不同的元素,从而提高性能        

1 <li :key='item.id' v-for='(item,index) in fruits'>{{item + '-------' + index}}</li>

      v-for遍历对象

<div v-for='(value,key,index) in obj'>{{value + '---' + key + '---' + index}}</div>

       v-for和v-if结合使用

1 <div v-if='value==12' v-for='(value,key,index) in obj'>{{value + '---' + key + '---' + index}}</div>

  

  声明式编程:模板的结构与最终显示的效果基本一致

  

2.Vue模板语法的更多相关文章

  1. Vue模板语法(二)

    Vue模板语法(二) 样式绑定  class绑定 使用方式:v-bind:class="expression" expression的类型:字符串.数组.对象 1.2 style绑 ...

  2. Vue模板语法(一)

    Vue模板语法 一.插值 1.1.1 文本 {{msg}} 1.1.2 html 使用v-html指令用于输出html代码 1.1.3 属性 HTML属性中的值应使用v-bind指令 1.1.4 表达 ...

  3. Vue模板语法(一)

    Vue模板语法 一 vue简介 Vue.js是一套构建用户界面的渐进式框架. 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与 ...

  4. Vue 模板语法 && 数据绑定

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8" /> 5 & ...

  5. 初始Vue、Vue模板语法、数据绑定(2022/7/3)

    文章目录 1.Vue简介 1.1.Vue的安装使用 1.2.实际的运用案例 1.3.vue开发工具的使用(这个需要在浏览器中安装) 2.初始Vue 2.1 .基础知识 2.1 .代码实例 2.2 .页 ...

  6. (Vue)vue模板语法

    Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统. ...

  7. Vue模板语法与常用指令

    Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数,结合相应系统,在应用状态改变时 ...

  8. Vue模板语法(二)

    Vue基础模板语法 二 1. 样式绑定 1.1 class绑定      使用方式:v-bind:class="expression"       expression的类型:字符 ...

  9. (32)Vue模板语法

    模板语法 文本: <span>Message: {{ msg }}</span> v-once 一次性地插值,当数据改变时,插值处的内容不会更新 <span v-once ...

  10. 11 - Vue模板语法

    Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. 所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML ...

随机推荐

  1. OpenCv:边缘处理&Canny边缘检测

    卷积边缘: 一.在进行卷积的时候,对于原图像(1,1)的位置,左.上方没有足够的像素做卷积. 二.通常,在卷积之前,在原图增加边缘像素,比如(3*3的,增加一个像素) 三.增加像素值得处理方法,通常有 ...

  2. rar 压缩解压

    rar wget https://www.rarlab.com/rar/rarlinux-x64-612.tar.gz # 压缩文件 rar a -r test.rar file # 解压文件 unr ...

  3. SQL1224 is returned during the execution of an SQL procedure

    SQL1224 is returned during the execution of an SQL procedure https://www.ibm.com/support/pages/sql12 ...

  4. @JsonSerialize(using = ToStringSerializer.class) 转换失败

    解决方案 但实际开发过程中,数据库的bigint,Java的Long都是比较常用的数据类型,为了避免精度丢失,针对这种比较大的数值 全局配置,将数值类型转换为文本如果需要将所有的数值类型全部转换成文本 ...

  5. gauva cache

    guava 的cache比较好用.    用户使用的对象是LoadingCache, 通过CacheBuilder来创建,通过 CacheLoader来根据key加载数据.而且可以定时刷新缓存(有访问 ...

  6. Jquery EasyUI dataGrid 修改默认分页大小 不起效果

    pageSize 不能单独使用,必须和pageList联合使用. 如果pageSize的值不在pageList中时,会以pageList中最小的值显示,而设置的pageSize无效.

  7. fragment加radio不可滑动

    public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { ...

  8. vue - 解决页面跳转到外部链接后,ios回退到本页面,生命周期,路由导航守卫钩子都无法触发的问题

    虽然加班,最近心情还是可以的,没多少bug找上门. 乐级生悲,遇到了个奇葩的坑,花了点时间百度才解决...但我离不开的'板砖'是安卓的,对此坑是抗拒的,完全没问题... #此坑描述 ...订单详情某按 ...

  9. from pathlib import Path

    from pathlib import Path #引入库 P.parent #获取父级目录 P.exists() #判断当前路径是否存在 P.mkdir(parents=Fasle) # 根据路径创 ...

  10. JavaScript垃圾回收机制的了解

    对于js种的任意长度字符串,对象,数组是没有固定大小的,只有在分配存储时,解释器就会分配内存来存储这些数据.当js的解释器消耗完系统所有可用内存时,就会造成系统崩溃.因此js有着自己的一套垃圾回收机制 ...