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 相关文章推荐
LABjs、RequireJS、SeaJS的区别
Mar 04 Javascript
javascript与css3动画结合使用小结
Mar 11 Javascript
JS实现的数组全排列输出算法
Mar 19 Javascript
Javascript节点关系实例分析
May 15 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
jQuery仿IOS弹出框插件
Feb 18 Javascript
用原生JS实现简单的多选框功能
Jun 12 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
Nov 18 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 Javascript
jQuery实现数字华容道小游戏(实例代码)
Jan 16 jQuery
如何使用Javascript中的this关键字
May 28 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删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
PHP微商城开源代码实例
2019/03/27 PHP
JQuery小知识
2010/10/15 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
Python简单进程锁代码实例
2015/04/27 Python
Python实现简易端口扫描器代码实例
2017/03/15 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
Python实现的rsa加密算法详解
2018/01/24 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
红领巾广播站广播稿
2014/02/01 职场文书
职称评定自我鉴定
2014/03/18 职场文书
质量整改通知单
2015/04/21 职场文书
董事会决议范本
2015/07/01 职场文书
干部培训简讯
2015/07/20 职场文书
新郎新娘致辞
2015/07/31 职场文书
php字符串倒叙
2021/04/01 PHP
Python机器学习之KNN近邻算法
2021/05/14 Python
vue使用watch监听属性变化
2022/04/30 Vue.js
PYTHON InceptionV3模型的复现详解
2022/05/06 Python