vue2

时间:2023-03-09 02:11:00
vue2

props

向子组件传递数据是经常会用到的,一般是在子组件定义 props 来接受数据,当父组件改变数据时子组件的数据也会进行更新。但这里是有一个坑的,先看代码:

<pagination :params="params"></pagination>

data: function() {
return {
params: {
per_page: 3
}
}
},
created: function() {
this.params.page = 1;
} // child-component <p> {{ params.per_page }} {{ params.page }} </p>// 3 1 props: {
total: Number,
params: Object
}

这里传递的是一个 object,在父组件中定义一个方法改变 params 的 per_page 和 page 的值,但子组件只有 params.per_page 的值更新了,page 的值是没有更新的。这是因为 vue 只会跟踪 data 函数里定义的变量,所以想要 page 也更新,在 data 的 params 里加上 page 属性就行了。

使用已经定义好的过滤器

// fileName: formatDate.js

import Vue from 'vue'

Vue.filter('formatDate', function(value) {
return new Date(value).toLocaleString()
}) const formatDate = Vue.filter('formatDate') export default formatDate // component <p>Posted at {{article.created_at | formatDate}}</p> import formatDate from '../filters/formatDate.js'