vue2-note-4
vue2补充
Vue.js 计算属性
计算属性关键词: computed。
计算属性在处理一些复杂逻辑时是很有用的。
1 | <div id="app"> |
上面例子中声明了一个计算属性 reversedMessage 。提供的函数将用作属性 vm.reversedMessage 的 getter 。vm.reversedMessage 依赖于 vm.message,在 vm.message 发生改变时,vm.reversedMessage 也会更新。
我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。
可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。
Vue.js 监听属性
我们可以通过 监听属性watch 来响应数据的变化
1 | <div id = "computed_props"> |
以上代码中我们创建了两个输入框,data 属性中, kilometers 和 meters 初始值都为 0。watch 对象创建了 data 对象的两个监控方法: kilometers 和 meters。
Vue.js 组件
组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树
创建
注册一个全局组件语法格式如下:
1 | Vue.component(tagName, options) |
tagName 为组件名,options 为配置选项。注册后,我们可以使用以下方式来调用组件:
1 | <tagName></tagName> |
全局组件
所有实例都能用全局组件。
注册一个简单的全局组件 runoob,并使用它:
1 | <div id="app"> |
局部组件
我们也可以在实例选项中注册局部组件,这样组件只能在这个实例中使用:
1 | <div id="app"> |
Prop
prop 是子组件用来接受父组件传递过来的数据的一个自定义属性。父组件的数据需要通过 props 把数据传给子组件,子组件需要显式地用 props 选项声明 “prop”:
1 | <div id="app"> |
动态 Prop
类似于用 v-bind 绑定 HTML 特性到一个表达式,也可以用 v-bind 动态绑定 props 的值到父组件的数据中。每当父组件的数据变化时,该变化也会传导给子组件:
1 | <div id="app"> |
Vue.js 组件 - 自定义事件
父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,就需要使用自定义事件!
我们可以使用 v-on 绑定自定义事件, 每个 Vue 实例都实现了事件接口(Events interface),即:
- 使用
$on(eventName)
监听事件 - 使用
$emit(eventName)
触发事件
另外,父组件可以在使用子组件的地方直接用 v-on 来监听子组件触发的事件。
- Title: vue2-note-4
- Author: Charles
- Created at : 2023-08-18 20:02:17
- Updated at : 2023-08-19 13:54:14
- Link: https://charles2530.github.io/2023/08/18/vue2-note-4/
- License: This work is licensed under CC BY-NC-SA 4.0.