• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >vue > Vue.js实战之组件的进阶

Vue.js实战之组件的进阶

作者:WiseWrong 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含vue.js实战,vue.js实战教程,vue.js实战视频,vue.js实战案例,vue.js项目实战等相关知识,WiseWrong 希望在学习及工作中可以帮助到您

一、基本用法

在使用 vue-cli 创建的项目中,组件的创建非常方便,只需要新建一个 .vue 文件,然后在 <template> 中写好 HTML 代码,一个简单的组件就完成了

 

一个完整的组件,除了 <template> 以外,还有 <script> 和 <style>

需要注意的是,<script> 中的 data 必须是函数

 

然后在其他文件的 js 里面引入并注册,就能直接使用这个组件了

二、使用 slot 分发内容

开发过程中,常常需要在子组件内添加新的内容,这时候可以在子组件内部留一个或者多个插口 <slot>

然后在调用这个子组件的时候加入内容

添加的内容就会分发到对应的 <slot> 中

<slot> 中还可以作为一个作用域,在子组件中定义变量,然后在父组件中自定义渲染的方式

 

这个示例中,首先在子组件中添加 <slot>,并在子组件中定义了数组变量 navs

然后在父组件中以作用域 <template> 添加内容,其中 scope 是固有元素,它的值对应一个临时变量 props

而 props 将接收子组件中,所有绑定的属性(如 text)

三、动态组件

Vue 还可以将多个子组件,都挂载在同一个位置,通过变量来切换组件,实现 tab 菜单这样的效果

这样的功能可以通过路由 vue-router 实现,但路由更适合较大的组件,而且 url 会有相应的改变

Vue 自身保留的 <component> 元素,可以将组件动态绑定到 is 特性上,从而很方便的实现动态组件切换

上例中,当 tabView 的值改变,<component> 就会渲染对应的组件,和路由的效果十分类似,但是地址栏并没有发生改变

但这样一来,每次切换组件都会重新渲染,无法保留组件上的数据。这时可以使用 keep-alive 将组件保留在内存中,避免重新渲染

 

四、递归组件

当组件拥有 name 属性的时候,就可以在它的模板内递归的调用自己,这在开发树形组件的时候十分有效

上面是一个子组件,定义了 name 为 simple03,然后在模板中调用自身,结合 v-for 实现递归

为了防止出现死循环,在调用自身的时候,加入了 v-if 作为判定条件

父组件中调用的时候,需要通过 props 传入一个 tree:

 

最终渲染结果:


总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

</div>

您可能想查找下面的文章:

  • vue构建单页面应用实战
  • Vue.js实战之通过监听滚动事件实现动态锚点
  • Vue.js实战之组件的进阶
  • Vue.js实战之利用vue-router实现跳转页面
  • Vue.js实战之组件之间的数据传递

相关文章

  • 2017-05-30Vue结合原生js实现自定义组件自动生成示例
  • 2017-05-30vue2.0父子组件及非父子组件之间的通信方法
  • 2017-05-30VUE JS 使用组件实现双向绑定的示例代码
  • 2017-05-30Vue响应式原理详解
  • 2017-05-30一篇看懂vuejs的状态管理神器 vuex状态管理模式
  • 2017-05-30vue多级多选菜单组件开发
  • 2017-05-30vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
  • 2017-05-30vuejs如何配置less
  • 2017-05-30vue + socket.io实现一个简易聊天室示例代码
  • 2017-05-30vue实现可增删查改的成绩单

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • Vuejs第十三篇之组件——杂项
    • vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
    • vue.js将unix时间戳转换为自定义时间格式
    • Vue.js每天必学之Class与样式绑定
    • 基于Vue实现timepicker
    • 简单的vue-resourse获取json并应用到模板示例
    • 详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
    • vue中渐进过渡效果实现
    • Vue v-if v-show语法
    • 第一次接触神奇的前端框架vue.js

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有