vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定


Posted in Javascript onSeptember 14, 2018

我的 github 地址 - vue3.0Study - 阶段学习成果都会建立分支。

首先美化一下界面 - 相关的界面代码不粘贴,可从我的 github 分支中看到。下面最终的实现效果图:

vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定

改造下 data 中的 navs 属性 ( navs 数组每个元素都是 包含 active 和 data 属性的对象 ):

created: function () {
 fetch('https://www.apiopen.top/journalismApi')
  .then(v => v.json())
  .then(v => {
  this.tts = v.data.toutiao
  this.navs = v.data
  console.log(this.navs);
  Reflect.ownKeys(v.data).forEach((key, index) => {
   this.navs[key] = {
   active: key === 'toutiao',
   data: this.navs[key]
   }
  })
  })
 }

其中的 active 用来标识 button,data 是新闻资讯的数据。

改造 <div class="nav"> 标签:

<div class="nav">
  <div v-for="(value, key, index) in navs"
  :key="index"
  :class="{ active: value.active }"
  @click="changeNav(key)"
  >
  {{key}}
  </div>
</div>

其中加入 :class="{ active: value.active }" ,当前 button 是激活时,增加 .active。@click="changeNav(key)",当点击 button 执行组件中定义的 changeNav 函数,并传入 key 作为参数。

 methods: {
 changeNav: function(akey){
  Reflect.ownKeys(this.navs).forEach((key, index) => {
  this.navs[key].active = akey === key && (this.tts = this.navs[key].data);
  })
 }
 },

以上是组件中定义的 changeNav 方法。 代码中仅仅改变了 navs 数组中每个 avtive 的值,便可以切换 button 的选中状态;而 this.tts = this.navs[key].data 则是当 button 选中时替换组件 tts 属性指向的对象。

以上,介绍了方法定义、指令、class 绑定的内容,也介绍了如何动态的渲染和切换。

插值技术这里仅仅用到 {{ 组件属性 }} 的方式,还有很多其他的方式;计算属性是根据组件已有的属性,计算出来的“属性”,也不是高深的内容;事件处理仅介绍简单的函数执行,还有事件修饰符;这些内容请参阅 vue 官方教程学习。

关于条件渲染和列表渲染通过两篇文章的学习,应该掌握基本的用法。v-show 和 v-if 的区别也要注意 ( 性能上有差别 );列表渲染也有注意地方,还有列表过滤;这些内容请参阅 vue 官方教程学习。

总结

以上所述是小编给大家介绍的vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 解析url的search方法
Feb 09 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
Oct 21 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
Jun 14 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
JavaScript实现自定义媒体播放器方法介绍
Jan 03 Javascript
详解Vue微信公众号开发踩坑全记录
Aug 21 Javascript
解决Vue打包之后文件路径出错的问题
Mar 06 Javascript
JavaScript 高性能数组去重的方法
Sep 20 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
Feb 20 Javascript
JavaScript碰撞检测原理及其实现代码
Mar 12 Javascript
Ajax异步刷新功能及简单案例
Nov 20 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
Sep 14 #Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
Sep 14 #Javascript
node中的session的具体使用
Sep 14 #Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 #Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
Sep 14 #Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 #Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
Sep 14 #Javascript
You might like
隐性调用php程序的方法
2009/03/09 PHP
mysql 性能的检查和优化方法
2009/06/21 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
js闭包的用途详解
2014/11/09 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
python 美化输出信息的实例
2018/10/15 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python批量处理文件或文件夹
2020/07/28 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
党校培训自我鉴定
2014/02/01 职场文书
学徒工职责
2014/03/06 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
教师先进事迹材料
2014/12/16 职场文书
个人政治思想总结
2015/03/05 职场文书
党员承诺书格式范文
2015/04/28 职场文书