1.自定义v-model
- 使用场景比如vue颜色选择 。
- 引用子组件时通过绑定
v-model="xxx",xxx为父组件中data的属性;当修改子组件中输入框的内容时,父组件中的xxx属性值也会跟着一起变化。
代码实例:
// 子组件内容
<template>
<div>
<input type="text" :value="myText" @input="handleInput($event)" />
</div>
</template>
<script>
export default {
model: {
prop: "myText", // 对应props的myText
event:'changeVal' // 对应emit的方法名字 },
props: {
myText: {
type: String,
default: "",
//required: false,
},
},
methods: {
handleInput(event) {
this.$emit("changeVal", event.target.value); //对应model中的event内容
},
},
};</script>
复制代码
// 父组件内容
<template>
<div>
// 会跟随子组件input框输入的内容变化而变化
<my-vmodel v-model="name"></my-vmodel>
<p>{{name}}</p>
</div>
</template>
<script>
import MyVmodel from './MyVmodel.vue'
export default {
components:{
MyVmodel
},
data(){
return {
name:'ncy'
}
}
}
</script>
复制代码
2.$nextTick
- 为什么要使用
$nextTick?
-
vue是异步渲染
-
data改变之后,Dom不会立刻渲染,页面渲染时会将data的修改做整合,多次data修改只会渲染一次。 -
$neckTick会在DOM渲染之后被触发,以获取最新DOM节点应用常见,项目中遇到需要操作DOM,比如引入的编辑器。
代码实例:
<ul ref=“ul1”></ul>
//通过this.$refs.ul1拿到
this.$nextTick(()=>{
const ulElem = this.$refs.ul1
})
复制代码
3.slot 插槽
(1)基本使用:下面例子中显示的是父组件data里面的内容。
(2)如果是需要把子组件的data数据暴露给父组件,那么可以使用作用域插槽。
(3)具名插槽,slot标签的name属性值,对应模版中的v-slot:name,多个具名插槽一起使用。
4.动态组件
demo1:
import Text from ‘./components/Text.vue’
data(){ return { componentName: Text // 必须的步骤 } }
demo2:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
相关推荐






![前端算法面试必刷题系列[47]-一一网](https://www.proyy.com/skycj/data/images/2021-04-25/7070f9d4896dd86ed43435a434ef2d95.jpg)















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)