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 相关文章推荐
用htc组件制作windows选项卡
Jan 13 Javascript
js实现页面跳转重定向的几种方式
May 29 Javascript
javascript随机之洗牌算法深入分析
Jun 07 Javascript
js实现禁止中文输入的方法
Jan 14 Javascript
JavaScript设计模式开发中组合模式的使用教程
May 18 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
Sep 21 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
Sep 25 Javascript
基于IView中on-change属性的使用详解
Mar 15 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
Sep 21 Javascript
详解Vue 动态组件与全局事件绑定总结
Nov 11 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
Dec 11 Javascript
nuxt.js写项目时增加错误提示页面操作
Nov 05 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中删除变量时unset()和null的区别分析
2011/01/27 PHP
php自动注册登录验证机制实现代码
2011/12/20 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
Python2.x与Python3.x的区别
2016/01/14 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
python构建指数平滑预测模型示例
2019/11/21 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
使用Python pip怎么升级pip
2020/08/11 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
Python实现一个论文下载器的过程
2021/01/18 Python
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
大学社团活动总结
2014/04/26 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
张丽莉观后感
2015/06/16 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
Javascript的promise,async和await的区别详解
2022/03/24 Javascript