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中的事件处理
Jan 16 Javascript
在模板页面的js使用办法
Apr 01 Javascript
js实现addClass,removeClass,hasClass的函数代码
Jul 13 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
Jun 25 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
jquery实现表单验证简单实例演示
Nov 23 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
Dec 08 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 Javascript
小程序组件之自定义顶部导航实例
Jun 12 Javascript
vue使用i18n实现国际化的方法详解
Sep 05 Javascript
js实现时钟定时器
Mar 26 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
简单实用的.net DataTable导出Execl
2013/10/28 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
使用PYTHON创建XML文档
2012/03/01 Python
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
python数据结构之图的实现方法
2015/07/08 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
Django中Middleware中的函数详解
2019/07/18 Python
Django框架视图函数设计示例
2019/07/29 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
Java里面如何创建一个内部类的实例
2015/01/19 面试题
Internal修饰符有什么含义
2013/07/10 面试题
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
献爱心活动总结
2014/05/07 职场文书
咖啡店创业计划书
2014/08/15 职场文书
亮剑观后感
2015/06/05 职场文书
亲情作文之母爱
2019/09/25 职场文书
Python中的变量与常量
2021/11/11 Python