Vue.js 一问一答
Vue.js 一问一答
记录一下在学习 Vue 过程中给自己问的一些问题,持续更新中...
Vue.js 的核心是什么?
官网:Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。
以下面的例子来说明:
// Vue 中的模板语法 <div id="app"> {{message}} </div> var app = new Vue({ el: "#app", data: { message: "hello Vue" } })上面的例子中上面的
div是 Vue 中的模板写法,通过模板语法将数据message渲染进了 DOM 中。计算属性和计算方法有什么区别?
计算属性有缓存机制,只有和它相关的属性改变时才会重新渲染,而计算方法则是只要属性变化就会改变。
例: 全名 FullName 用计算属性和计算方法都可以实现,当用计算属性时,只要当名或姓改时才会重新渲染,而当用计算方法时,就算是改变年龄也会重新渲染。
在这一点上,计算方法是优于计算属性的。
如何做到数组变化的时候页面跟着变化?
使用 数组方法:
push, pop, shift, unshift, splice, sort, reverse.改变数组的引用,比如给这个数组重新赋予一个新的数组。
利用
set方法修改数组的值,例如:Vue.set(vm.list, 1, 5) // 将 list 数组索引为1的项改为5 // 或 vm.$set(vm.list, 1, 5)
如何做到对象变化时页面跟着变化?
- 如果是对象中已有的属性,那么改变这个属性的值页面就会跟着变化。
如果往对象里面添加属性,那么页面不会跟着变化,想让其变变化可以改变对象的引用,比如给这个对象重新赋予一个新的对象。
通过
set方法给对象设置属性,页面也会跟着变化。例如:Vue.set(vm.userInfo, 'sala', 'secret') // 或 vm.$set(vm.userInfo, 'sala', 'secret')
想要在
tbody, select, ul, ol等元素中使用VUe组件应该怎么实现?由于它们的特殊性,直接将组件写在这些元素中,会发现组件虽然在页面上显示,但是它们并不包裹在这些标签之中。
解决方法: 使用
is// 假设 row 是一个组件,想要作为 tbody 的子元素 <table> <tbody> <tr is='row'></tr> <tr is='row'></tr> </tbody> </table>说一下当点击子组件时子组件中的 number + 1,如何实现同时父组件中的 counter 也跟着 + 1 ?
- 在子组件中定义事件处理函数,事件处理函数的内容:
- 当点击子组件时实现子组件的 number + 1
- 触发一个新的事件
父组件捕获这个事件,父组件事件处理函数的内容是将子组件的number赋给父组件中的 counter。
在父组件中如何获得子组件的number属性呢?
可以在使用子组件时设置 ref 属性,这样在父组件的事件处理函数中就可以获得子组件中的数据了。
- 在子组件中定义事件处理函数,事件处理函数的内容:
父子组件如何传值?
父组件如何向子组件中传值?
使用子组件时设置属性的方式
<父组件> // 这样写时传给子组件的是一个字符串 "1" <子组件 count="1"></子组件> // 这样写时传给子组件的是数字1,因为这样写双引号后面的内容是一个JS表达式 <子组件 :count="1"></子组件> </父组件>
子组件如何向父组件传值?
- 通过事件触发的方式
在子组件中通过
this.$emit('触发的事件名', 向父组件传入的参数)方式,触发一个事件,在使用子组件的地方捕获到这个事件,然后触发写在父组件事件处理函数。父组件的事件处理函数可以接受到从子组件传递过来的数据。当然也可以通过问题 6 中
ref方式向父组件中传值,但是无论哪种方式都需要采用事件触发的方式。何为单向数据流,为什么要规定单向数据流?
- 单向数据流指的就是子组件不能修改从父组件传递过来的数据。
- 如果从父组件传递过来的数据是一个引用类型的话,在子组件中如果将其改变之后,那么父组件传递给其它组件时也将是修改之后的数据。
Vue.js 一问一答的更多相关文章
- [译]Node.js面试问与答
原文: http://blog.risingstack.com/node-js-interview-questions/ 什么是error-first callback? 如何避免无休止的callba ...
- 定了,这个vue.js开源项目,面试时,一定会考问
因为现在的网店,都是用的商城系统, 而实体店都是入座后,扫码打开网上商城进行选购(餐饮,超市等),所以,vue.js迅速开发网上购物商城系统成为了香饽饽, 本人开源2020年4月开发的购物商城系统, ...
- 前端框架本质之探究——以Vue.js为例
问:我们在使用Vue时,实际上干了什么? 答:实际上只干了一件事——new了一个Vue对象.后面的事,都交由这个对象自动去做.就好像按了下开关,机器跑起来了,剩下的事就不用我们再操心了. 各位 ...
- 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发
每天记录一点:NetCore获得配置文件 appsettings.json 用NetCore做项目如果用EF ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...
- vue.js 中 data, prop, computed, method,watch 介绍
vue.js 中 data, prop, computed, method,watch 介绍 data, prop, computed, method 的区别 类型 加载顺序 加载时间 写法 作用 备 ...
- 前端面试:Vue.js常见的问题
摘自今日头条用户:代码开发 原文链接: https://www.toutiao.com/a6683120112255369732/?tt_from=mobile_qq&utm_campaign ...
- Vue.js——vue-resource全攻略
概述 上一篇我们介绍了如何将$.ajax和Vue.js结合在一起使用,并实现了一个简单的跨域CURD示例.Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的D ...
- Vue.js——基于$.ajax实现数据的跨域增删查改
概述 之前我们学习了Vue.js的一些基础知识,以及如何开发一个组件,然而那些示例的数据都是local的.在实际的应用中,几乎90%的数据是来源于服务端的,前端和服务端之间的数据交互一般是通过ajax ...
- Vue.js 入门指南之“前传”(含sublime text 3 配置)
题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...
随机推荐
- 勾股数专题-SCAU-1079 三角形-18203 神奇的勾股数(原创)
勾股数专题-SCAU-1079 三角形-18203 神奇的勾股数(原创) 大部分的勾股数的题目很多人都是用for来便利,然后判断是不是平方数什么什么的,这样做的时候要对变量类型和很多细节都是要掌握好的 ...
- C++学习第二天(打卡)
C++ new 可以很方便的 分配一段内存. 比如 int *test= new int ; int n; cin>>n; int * test =new int [n]; 可以实现动态分 ...
- HDFS之NameNode
NameNode&Secondary NameNode工作机制 1)第一阶段:namenode启动 (1)第一次启动namenode格式化后,创建fsimage和edits文件.如果不是第一次 ...
- 微服务 consul使用
前言 常见的注册中心有zookeeper .eureka.consul.etcd.从生态发展.便利性.语言无关性等角度来综合考量,选择consul,多数据中心支持,支持k-v能力,可扩展为配置中心.g ...
- Python的import机制
模块与包 在了解 import 之前,有两个概念必须提一下: 模块: 一个 .py 文件就是一个模块(module) 包: __init__.py 文件所在目录就是包(package) 当然,这只是极 ...
- Fragment事务管理源码分析
转载请标明出处:http://blog.csdn.net/shensky711/article/details/53132952 本文出自: [HansChen的博客] 概述 在Fragment使用中 ...
- Tab Bar Control 的封装和切换
见视频0414 思路: 1.删除系统自带的TabBar.2.添加UIView,做成自定义的TabBar,覆盖原来的TabBar.3.添加对于的button和切换事件.
- Gitlab用户信息批量导出
前言 因运维体系中涉及到用户权限管理及统计,需将Gitlab用户数据提取出来并录入到公司内部自建的权限统计平台. 本文将对Gitlab的用户信息数据批量导出进行操作说明! 思路 A)要对数据进行批量的 ...
- 【JavaEE】之MyBatis输出映射
MyBatis中的输出映射有两种:resultType和resultMap. 1.resultType 使用resultType进行结果映射时,只有当查询结果中有至少一列的名称和resultType指 ...
- python的遗传算法--Hello World入门篇
本系列文章代码取材于书籍<Genetic Algorithms with Python>,本人是在校电气专业的研究生,立志从事于Python相关的代码工作,具体什么方向还有待深究. 众所周 ...