<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.10/dist/vue.js"></script>
<title>Document</title>
</head>
<body>
<div id="app">
<!-- 1. 现将data中的值传入组件中 实现单向绑定data -> 自定义组件 -->
<!-- 4.看15行代码input事件获取emit中value -->
<!-- 5.最后看15行可以合并所以得到v-model="num" -->
<!-- <rub :value="num" @input="num = $event"></rub>{{num}} -->
<rub v-model="num"></rub>{{num}}
</div>
<!-- 模板 -->
<!-- 2. :value="num" 可以省略不写 -->
<!-- 3.为了实现组件中的内容指向data 要用到emit函数 @input="$emit('emit')" 与组件中方法链接 -->
<!-- 简化步骤将组件中删除,简化成25行代码 -->
<template id="tem">
<input
type="text"
:value="num"
@input="$emit('input', $event.target.value)"
/>
</template>
<script>
Vue.component("rub", {
props: ["num"],
template: "#tem",
// methods: {
// emit(e) {
// this.$emit("input", e.target.value);
// },
// },
});
new Vue({
el: "#app",
data() {
return {
num: 100,
};
},
// methods: {
// tiaoyong(value) {
// this.num = value;
// },
// },
});
</script>
</body>
</html>
保姆级 v-model在自定义组件中使用
最新推荐文章于 2024-11-08 11:26:10 发布