vue重点知识

本文详细介绍了Vue框架中$data的异步更新机制,以及在组件间如何使用$nextTick进行视图同步操作。同时,讲解了子组件通过$emit向父组件传递数据,以及父组件通过props和$refs向子组件传递数据的两种常见方式,并提供了具体的代码示例。
摘要由CSDN通过智能技术生成

$nextTick()

1. 使用原由
由于Vue的数据驱动视图的更新是异步的,也就是在修改数据的当下视图不会立即更新,而是等同一事件循环中所有数据变化完成之后,统一进行视图更新。

2. 使用场景
需要在视图更新之后,基于新的视图进行操作,一般写在created和mounted里面

mounted(){
  this.$nextTick(()=> {
       this.setCircleHeiht()
   })
   window.addEventListener("resize",this.setCircleHeiht)
},
methods:{
    //设置圆的高度
    setCircleHeiht(){
        this.largeHeight = this.$refs.largeCircle[0].offsetWidth
        this.minHeight = this.$refs.minCircle[0].offsetWidth
    }
 }

子父组件之间的通信

1. 子组件向父组件传值
主要是通过$emit()进行传递
子组件代码:

<template>
  <div>
      <h3>这里是childA</h3>
      <button @click="_send">给父组件传个消息</button>
  </div>
</template>

<script>
export default {
name:'ChildA',
// 方法集合
methods: {
    _send(){
        this.$emit('send',{nickName:'Lucky'});  //将需要传的值作为$emit的第二个参数进行传递
    }
}
}
</script>

父组件代码:

<ChildA @send="touchMe"></ChildA>
    <h3>子组件的名字:{{getByChildA}}</h3>

<script>
import ChildA from './ChildA'
export default {
  name: 'HelloWorld',
  data () {
    return {
      getByChildA:'',
      name:'',
      age:'',
      msg:''
    }
  },
  components:{
    ChildA,   //父组件中注册子组件
  },
  methods:{
    touchMe(obj){
      this.getByChildA=obj.nickName;  //将从子组件中获取的值赋值给变量
    }
  }
}
</script>

2. 父组件向子组件传值
方式一:在子组件中使用props进行接收父组件传过来的值
子组件代码:

<div>
      <h3>这里是childC</h3>
      <h3>父组件传过来的值:姓名:{{inputName}} 年龄:{{inputage}}</h3>
  </div>

<script>
// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)

export default {
    //接受父组件传过来的值
    props:{
        inputName:String,   //定义传值类型
        inputage:Number
    }
}
</script>

注意:props就是一个属性,不能写在data里面
父组件代码:

 <!-- 子组件与父组件之间的契合点 -->
    <ChildC :inputName="name" :inputage="age"></ChildC>
data () {
    return {
      name:'cc',   //父组件要向子组件传递的值
      age:20
    }
  },

方式二:用this.$refs进行传递,在父组件中引入子组件的时候还需要用ref进行绑定

子组件代码:

<template>
  <div>
      <h3>这里是childB</h3>
      <h3>父组件传过来的值:姓名:{{name}} 年龄:{{age}}</h3>
  </div>
</template>

<script>
// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)

export default {
  components: {
    
  },
  // 定义属性
  data() {
    return {
        name:'',
        age:''
    }
  },
  methods: {
      //父组件触发子组件的init方法
    init(name,age){
        this.name=name;
        this.age=age;
    }
  }
}
</script>

父组件代码:

<button @click="getData">父组件给子组件传值</button>
    <ChildB ref="myChildB"></ChildB>
methods:{
    getData(){
      //触发子组件的方法并且传参   init函数名与子组件中的函数名一致
      this.$refs.myChildB.init("childB","18")
    }
  }

运行结果:
初始时:在这里插入图片描述
点击按钮之后:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js是一种流行的JavaScript框架,用于构建交互式的用户界面和单页面应用程序。它具有许多重要的特性和知识点。 首先,Vue的核心概念包括数据驱动、组件化和响应式设计。数据驱动意味着视图是由数据驱动的,当数据发生改变视图会自动更新组件化使得用户界面可以被分解成独立的组件,每个组件包含自己的数据、模板和逻辑。响应式设计可以让数据变化自动更新DOM,而不需要手动操作。 其次,Vue的重要知识点包括指令、生命周期钩、计算属性、事件处理、过滤器等。指令是用于扩展HTML的特殊属性,例如v-if、v-for等。生命周期钩提供了在Vue实例生命周期不同阶段执行代码的机会。计算属性可以根据依赖的数据动态计算出一个新值。事件处理允许我们对用户的输入做出响应。过滤器可以对数据进行一些处理后再显示到视图上。 最后,Vue还有一些重要的工具和插件,如Vue Router用于构建单页面应用的路由系统,Vuex用于集式状态管理,Vue DevTools用于调试Vue应用程序等。 综上所述,Vue重点知识包括核心概念、重要知识点和工具插件。掌握这些知识可以帮助开发者好地理解和应用Vue.js框架,从而构建出功能强大、高效的前端应用程序。若想深入学习Vue.js,可以阅读相关的pdf文档或官方文档,这将对理解和运用Vue有很大帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值