我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue.js中片段的使用方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue.js中片段的使用方法

本篇内容介绍了“Vue.js中片段的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在 Vue 中实现可访问性

为了实现 Web 上的可访问性,你需要设计每个人都可以使用的页面、工具和技术。

这里的“所有人”包括有着听觉、认知、神经、身体、语言和视觉障碍的人。

为了使诸如屏幕阅读器之类的辅助技术能够解释网页和应用程序,无障碍支持是必需的。为了使这些技术起作用,开发人员需要考虑可访问性。

开始之前

本文适用于使用 Vue.js 的所有级别的前端开发人员,因此不需要了解初学者的概念和安装过程即可理解这些概念。

在开始之前,这是你应该已经具备的一些先决条件。

你需要:

  • 安装了 Node.js 10.x 或更高版本。你可以通过在终端或命令提示符下运行 node -v来验证。

  • 安装了 Node Package Manager 6.7 或更高版本(NPM)。

  • 代码编辑器:强烈建议使用 Visual Studio 代码。

  • Vue 的最新版本已在你的计算机上全局安装。

在你的计算机上安装了 Vue CLI 3.0。为此,请先卸载旧的CLI版本:

npm uninstall -g vue-cli

然后安装新的:

npm install -g @vue/cli

要么

  • 在这里下载 Vue 入门项目(https://github.com/viclotana/vue-canvas)

  • 解压缩下载的项目

进入解压目录运行以下命令使所有依赖项保持最新:

npm install

问题:多个根节点

在 Vue 组件的模板部分内构建内容时,你可能会注意到,模板标签内只能有一个根 HTML 标签。

在这个根 HTML 标记内,你可以根据需要创建任意数量的子节点,因此在 Vue 组件中不能有多个根节点。

如果你用 VS Code 打开了项目,请导航到 class="lazy" data-src 文件夹,然后导航到 components 文件夹,打开 app.js 文件。你的  app.js文件应如下所示:

<template>   <div id="app">     <img alt="Vue logo" class="lazy" data-src="./assets/logo.png">     <Test msg="Welcome to Your Vue.js App"/>   </div> </template> <script> import Test from './components/Test.vue' export default {   name: 'app',   components: {     Test   } } </script> <style> #app {   font-family: 'Avenir', Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

你可以看到 div 是模板中唯一的根节点。如果你尝试像这样添加额外的根节点:

<template> <span>   <div id="app">     <img alt="Vue logo" class="lazy" data-src="./assets/logo.png">     <Test msg="Welcome to Your Vue.js App"/>   </div>   <div>     <h2>Header inside root node 2</h2>   </div> </span> </template> <script> import Test from './components/Test.vue' export default {   name: 'app',   components: {     Test   } } </script> <style> #app {   font-family: 'Avenir', Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

你会看到,保存时,Vue 编译器将会提示有关具有多个根节点的错误。

Vue.js中片段的使用方法

额外的节点包装器技术

为了找到解决方法,Vue 开发人员经常会创建一个额外的(而且几乎是不必要的)根节点包装器,在其中可以创建适合的子节点。

这里的标签可以是 span 或 div 标签。大多数 Vue 开发人员经常使用 div 标签来确保他们的代码块不会产生导致破坏程序的错误。

这些额外的标签除了防止产生错误外,什么也不做。

<template> <span>   <div id="app">     <img alt="Vue logo" class="lazy" data-src="./assets/logo.png">     <Test msg="Welcome to Your Vue.js App"/>   </div>   <div>     <h2>Header inside root node 2</h2>   </div> </span> </template> <script> import Test from './components/Test.vue' export default {   name: 'app',   components: {     Test   } } </script> <style> #app {   font-family: 'Avenir', Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

这个方法的问题在于它不可访问。

现在根据 HTML 指南,诸如列表项之类的语义标签应该使用有序或无序列表标签进行包装。同样,table 项应由 table 标签包装为父标签。

Demo

让我们用 App.vue 组件来渲染将要在 Test.vue 组件中创建的列表。

打开你的 App.vue 文件,然后在模板部分中复制以下代码:

<template> <span>   <div id="app">     <img alt="Vue logo" class="lazy" data-src="./assets/logo.png">     <ol>       <Test />     </ol>        </div> </span> </template>

然后,在Test.vue组件中,将列表项放入模板部分,如下所示:

<template> <div>    <li>1. Array method</li>    <li>2. Extra tag method</li>    <li>3. fragments</li>   </div> </template>

上面的代码块不会由编译器返回错误。实际上,它将被传递到 App.vue 组件中以正确渲染列表。

但是,如果你在 devtools 中检查元素,则会发现它不返回语义 HTML。

Vue.js中片段的使用方法

如果不遵循这个语义,则你的 HTML 代码可能会正常运行,但不会被屏幕阅读器或语音转换之类的辅助设备接收。

这就是为什么这种方法(被广泛使用)现在不被接受的原因。通常人们倾向于编写可访问的代码。

解决方案:片段

这个概念是 React 团队发布版本 16 时提出的。这是针对开发人员行为造成的可访问性差距的解决方案。

该团队找到了一种创建 HTML 标记的方法,该方法不会被 DOM 读取为节点,并将其称为片段。

它的工作原理与 div 或 span 标记完全相同,但不会改变代码的整体结构,因此保持了 DOM 树的语义。

React 片段语法

render() {     return (         <React.fragment >          <ChildA / >          <ChildB / >          <ChildC / >        </React.fragment>     ); }

在DOM中,如下所示:

<ChildA / > <ChildB / > <ChildC / >

片段是不可见的包装器标签,不影响 DOM 的节点结构,从而实现了可访问性。

Vue 中的 片段

Vue团队尚未完成正式的片段功能,但是 Vue 社区成员 Julien Barbay 构建了一个很棒的插件。

这个插件就像包装器一样。然后在 Vue 编译时,它会在 DOM 上被注释掉。

这是在 Vue 2.x 中使用片段的非常有效的方法

语法如下所示:

<Fragment >   <ChildA / >   <ChildB / >   <ChildC / >  </Fragment>

在 DOM 中,其渲染结果如下:

<!--Fragment-->   <ChildA / >   <ChildB / >   <ChildC / >  <!--Fragment-->

你可以看到有两行被注释掉了,因此 DOM 具有语义并且可以访问代码。要使用它,请先在你的 Vue 项目中安装插件:

npm install -s vue-fragment

然后导入它,你就可以在 Test.vue 文件中使用了,如下所示:

<template> <fragment>    <li>1. Array method</li>    <li>2. Extra tag method</li>    <li>3. fragments</li> </fragment> </template> <script> import { Fragment } from 'vue-fragment' export default {   name: 'Test',   components: { Fragment },   props: {     msg: String   } } </script>

你可以看到div标签已被片段替换。现在,整个演示文稿都可以访问了。

Vue.js中片段的使用方法

总结

在本文中,你学习了如何在 Vue 中使用片段,并了解了为什么在写代码时要考虑可访问性是非常重要的。

Vue 团队已承诺在即将发布的 Vue v3 中引入片段功能。

Julien 的插件是一个非常有用的插件,你现在就能用。

“Vue.js中片段的使用方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue.js中片段的使用方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue.js中使用道具方法demo

这篇文章主要为大家介绍了Vue.js中使用道具方法demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-14

mybatis中sql片段怎么使用

在MyBatis中,可以使用SQL片段来复用一些重复的SQL代码段。SQL片段可以在MyBatis的XML配置文件中定义,在需要使用的地方引用。以下是使用SQL片段的步骤:在MyBatis的XML配置文件中定义SQL片段,可以使用
mybatis中sql片段怎么使用
2024-05-21

vue.js中关于点击事件方法的使用(click)

这篇文章主要介绍了vue.js中关于点击事件方法的使用(click),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

Android Studio使用小技巧:提取方法代码片段

今天来给大家介绍一个非常有用的Studio Tips,有些时候我们在一个方法内部写了过多的代码,然后想要把一些代码提取出来再放在一个单独的方法里,通常我们的做法是复制粘贴,现在我来教给大家一个非常简洁的方法,先看下gif演示吧:怎么样很方便
2022-06-06

教你在PostgreSql中使用JSON字段的方法

目录概述使用总结通过本文可掌握在pg数据库中如何正确使用json字段,如何进行数据查询,在where子查询中如何使用,以及对json值进行聚合查询使用.概述JSON 代表 JavaScript Object Notation。JSON是
2022-11-29

python数组切片分段的方法是什么

在Python中,可以使用切片(Slice)来对数组进行分段。切片的语法是:`array[start:end:step]`。- `start`:表示切片的起始位置,包含在切片内。- `end`:表示切片的结束位置,不包含在切片内。- `st
2023-10-12

聊聊在页面上使用Vue.js获得值的方法

Vue.js是一种轻量级的前端框架,具有易学易用、组件化、高效、灵活等特点,因此在前端开发中非常流行。在使用Vue.js时,我们经常需要向页面上传递数据,并获取网页上用户输入的数据。在本文中,我们将讨论如何在页面上使用Vue.js获得值的方法。一、Vue.js的数据绑定Vue.js通过数据绑定实现了数据和页面元素的自动更新。例如,在Vue实例中定义数据data,我们可以使用双花
2023-05-14

Android中ImageView使用网络图片资源的方法

本文实例讲述了Android中ImageView使用网络图片资源的方法。分享给大家供大家参考。具体如下: 很多时候我们不想把东西都放在APK里面,或者是不能放进去,这时候我们就需要万能的网路帮助自己实现了 运行效果截图如下:java代码如下
2022-06-06

MyBatis中怎么使用SQL片段重用SQL代码

在MyBatis中使用SQL片段可以通过定义一个标签来重用SQL代码。这样可以避免重复编写相同的SQL代码,提高代码的复用性和可维护性。以下是一个简单的例子,演示如何在MyBatis中使用SQL片段:首先在MyBatis的映射文件(如Ma
MyBatis中怎么使用SQL片段重用SQL代码
2024-05-08

如何在Python中使用快捷代码片段

本篇文章为大家展示了如何在Python中使用快捷代码片段,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能
2023-06-14

Vue.js中的下载和调用方式

这篇文章主要介绍了Vue.js中的下载和调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录