博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue 踩坑之旅
阅读量:6716 次
发布时间:2019-06-25

本文共 3422 字,大约阅读时间需要 11 分钟。

一:使用v-for渲染列表渲染出多个list的时候,要将获取到的数据渲染到元素属性上的时候,要使用v-bind语法,

要将渲染的数据变为内容使用双括号的写法: {

{this.value}}  要将获取的数据渲染为元素的属性的时候我们使用 v-bind="this.value"

使用v-bind 绑定的数据是组件中data 中的数据

二:关于选择符API,选择符API存在的几种方法:

1,document / element .querySelector()方法:

这个方法会在document文档元素的范围或者在元素(element)后代的范围内查找到匹配元素,注意:这个方法会返回与该模式匹配到的第一个元素,返回的是元素的第一个元素,如果第一个元素不存在,返回null,

这些选择符的用法类似于jquery选择符的用法

代码如下:

var body = document.querySelector ("body")// 获取body元素var myDiv = document.querySelector("#myDiv") // 获取ID为myDiv的元素var seleced = document.querySelector(" .selected ") //获取到class为selected的第一个元素var Strong = document.querySelector("p strong")//获取p元素内的第一个strong元素

如上:

2,document / element .querySelectorAll()方法:

这个方法会查找匹配元素内的所有子元素,这个方法会返回一个NodeList对象,如果没有找到元素,会返回一个空的NodeList元素

同样,我们可以使用数组的元素访问到各个元素,使用中括号 [  ]

三:关于我们使用vue 要获得click点击事件的目标对象:如何获得?

代码如下:

如上:

1,使用绑定 $event来获得元素,在点击事件发生的时候,向函数中传入一个 $event对象,在函数中,通过 $event.currentTarget来获得点击的目标元素

2,我们使用parentNode来获得元素的父元素

四:关于父子元素组件之间的通信:

关于父子组件的通信,我们可以通过 props down  events up 来实现的,这个过程如下所示:

如上图所示:父组件通过 props向下传递数据到子组件  子组件通过events实现啊传递数据到父组件

具体的使用方法:

1:父元素传递数据到子组件,使用props,但是对于子组件是如何获得父元素传递过来的数据呢?使用子组件的props选项来获得,代码如下:

 

Vue.component('child',{        props:['message'],//子组件想要获得父元素传递过来的哪一个数值,        template:'{
{message}}
' }) new Vue({ el:'#container' })

如上,我们是在子元素模版标签内声明的数据

 

 最后输出  'hello' 

上面的数据是写在子元素模板标签内的,用来传递数据,但有的时候,我们想要传递的数据是变化的,我们可以通过v-bind来绑定数据来获得

代码如下:

new Vue({        el: '#container',        data: {            parentMsg: 'Message from parent'        },        components: {            child: {                props: ['message'],                template: '{
{message}}
' } } })  

html元素中我们这样写:

  

我们使用了v-model来绑定了数据,使用v-model的用法:

关于v-model 我们可以使用v-model来绑定表单选项,实现数据值的动态改变,

props除了可以获得字符串数据之外,还可以将对象形式,布尔值传递给子元素,对于子元素则是通过访问对象属性的方法来获得内容的

2,子组件上传数据给父组件,我们是通过event来获得的

通过event v-on来实现

$on(eventName) :监听事件 实际上我们不是用的$on来监听的事件,我们在实际使用中通过v-on 来监听子元素中自定义的事件

$emit(eventName)触发事件

注意:使用$on $emit 监听事件的原理是:我们不需要告知父元素要监听的具体内容,我们只要当子元素使用$emit触发事件的时候,父元素在子元素的模板内使用v-on监听这个事件就可以了

实例方法:

vm.$on(event,callback)

event:string 自定义事件,字符串

callback:function 回调函数

代码如下:

上面的代码中子组件中使用this.$emit抛出  'add'事件,注意,这个事件只是一个标签,用来表明我和父组件之间通信的标志,同时在this.$emit中还使用了回调函数,回调函数在抛出事件的同时,附带也向父组件传递了一些数据,

父组件通过在模板上使用v-on的写法监听子组件抛出的事件,v-on:Name='fucntion’   Name:是子模版抛出的事件名称, function是父组件监听到子组件抛出的事件之后要调用的函数,同样,我们可以在这个函数中取到子组件传递过来的 数据

如上:使用结合 $emit实现传递数据从子组件传递到父组件

五:关于watch函数的使用:

watch函数用于监听数据的变化

 代码如下:使用watch函数监听实例中属性的变化,监听数据的变化

var vm = new Vue({  data: {    a: 1,    b: 2,    c: 3  },  watch: {
//使用这种方法来获得数据变化前后的数据变化值 a: function (val, oldVal) { console.log('new: %s, old: %s', val, oldVal) }, // 方法名   //使用这种方法,当数据变化的时候调用函数 b: 'someMethod', // 深度 watcher,使用deep:true实现深度监听,当属性是一个对象的时候,当对象中的属性发生变化的时候,调用函数,不可用来监听数组的变化 c: { handler: function (val, oldVal) { /* ... */ }, deep: true } }})vm.a = 2 // -> new: 2, old: 1

  

代码如上:

六:关于数组的API

splice方法:

三个方法:删除  插入  替换

array.splice(startIndex,num,insertEle)

startIndex:从当前位置开始进行操作

num:要进行操作的项,这个数的大小也决定了splice 的不同方法

insertEle : 要向数组中插入的选项

关于num: 

0:表示不删除数组中的选项,这时候splice表示的是要将数组中的项进行插入

1:表示从startIndex的位置开始删除一个 选项,然后加入一个新的项,也就是splice的替换方法

num>1 表示要删除多个选项

七:关于一点感悟

在vue中的核心是使用 数据驱动进行的,要牢记这一点,使用vue的数据驱动,我们可以实现改变dom内容,改变元素的样式,一切皆数据,一切皆数据驱动,能用数据的要用数据驱动进行,牢记,牢记

每天在进步,不要忘了自己在哪儿

+

 

转载于:https://www.cnblogs.com/qianduangaoshou/p/7070735.html

你可能感兴趣的文章
multipart/form-data和application/x-www-form-urlencoded的区别
查看>>
[LeetCode] Reorder List 链表重排序
查看>>
[总结]文件传输模型之文件中转
查看>>
jQuery(一)引入
查看>>
Facebook内部分享:26个高效工作的小技巧
查看>>
jstack和线程dump分析
查看>>
NETSH WINSOCK RESET这条命令的含义和作用?
查看>>
SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
查看>>
第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotion模拟器...
查看>>
AtomicInteger简介
查看>>
(转)解决ScrollView嵌套ListView或者GridView导致只显示一行的方法
查看>>
html5 -- audio标签
查看>>
DNG格式解析
查看>>
Windows 下搭建LDAP服务器
查看>>
2015年第8本(英文第7本):the city of ember 微光城市
查看>>
FZU操作系统课程实验 实验一
查看>>
【转】Android Activity和Intent机制学习笔记----不错
查看>>
Eclipse背景颜色修改
查看>>
linux下安装oracle11g 64位最简客户端(转)
查看>>
搭建XMPP协议,实现自主推送消息到手机
查看>>