Open renmm opened 4 years ago
//todo
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式
与vue里的computed同样的概念,可以理解为state的计算属性,都是派生出新的数据。
state.getter.xx
我的理解是一个语法糖,把value与onChange封装了(input,textarea是value,onInput,其他的参考vue官网)
默认value是字符串,单选框,复选框也可以是boolean值。如果需要调整value,使用指令:
v-bind:value="a"
v-on:change="$emit('change', $event.target.checked)"
里的$emit
和$event.target.checked
this.$emit('myEvent')
Vue.component('base-checkbox', {
model: {
prop: 'checked',
event: 'change'
},
props: {
checked: Boolean
},
template: `
<input
type="checkbox"
v-bind:checked="checked"
v-on:change="$emit('change', $event.target.checked)"
>
`
})
它是一个对象,里面包含了作用在这个组件上的所有监听器
## 参考
- [自定义事件](https://cn.vuejs.org/v2/guide/components-custom-events.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6%E7%9A%84-v-model)
指令 (Directives) 是带有 v- 前缀的特殊 attribute。传送门
Mustache 语法不能作用在 HTML attribute 上,遇到这种情况应该使用 v-bind 指令:
<!-- 完整语法 -->
<a v-bind:href="url">...</a>
<!-- 缩写 -->
<a :href="url">...</a>
<!-- 动态参数的缩写 (2.6.0+) -->
<a :[key]="url"> ... </a>
v-on指令监听 DOM 事件 传送口
<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>
<!-- 缩写 -->
<a @click="doSomething">...</a>
<!-- 动态参数的缩写 (2.6.0+) -->
<a @[event]="doSomething"> ... </a>
watch的使用
监听数据变化时使用,一般用于当数据变化,需要执行联动时操作。
监听属性作为函数使用,监听某个数据,数据名称作为key: 这种使用方式,在第一次绑定时,不会立即触发。只有等到监听属性变化时,才会触发。
监听属性作为对象使用,有handler函数和2个参数immediate和deep属性可使用
deep属性 当需要监听某个data的嵌套属性时,这个字段就派上作用了。
不过,这样写,可能会有性能影响,如果obj对象嵌套多,会造成一定的内存开销,可以用字符串形式监听。
优化完:
参考