相对路径和绝对路径
相对路径:是指的相对自身的路径,从自身当前的位置开始找。
绝对路径:从项目的根目录开始找。
Vue的局部组件
组件是Vue最强大的功能之一。组件可以保证封装的代码的可复用性,组件是自定义元素,比如:导航栏header, 中部区域块banner,等等,个人理解就是一个可复用的结构性的代码块。
局部组件:只在一两个页面中去使用
步骤:一、创建 二、引入 三、注册 四、使用
局部组件的引入只能使用@去引入文件( @指的项目根目录 )
Vue的全局组件
全局组件:会在很多页面中复用(重复使用)
在main.js项目的主入口程序去引入全局组件,注册全局组件
父子组件之间的通信
父传子
页面可以包含很多的子组件
一个页面(pages目录里)不要包含很多的html或uniApp ui组件标签,尽量拆分成组件独立出去。
拆分出去的组件的内容,由数据驱动。
#props
类型: Array<string> | Object
详细:可以是数组或对象,用于接收来自父组件的数据,props可以是简单的数组,或者使用对象作为替代,对象允许配置高级选项,如:类型检测、自定义验证、和设置默认值。
对子组件接收过来的数据加以处理(对props接收过来的数据进行反转处理)
子传父
我们点击button这个按钮,触发了sendSonData()这个事件,uni.$emit() 该机制会向父组件传一个数组数据sonData,并且去父组件通过页面加载的生命周期onLoad()利用uni.$on()去用这个事件。
数据捕获后,便会去挂载数据,挂载数据后,便在页面中去把数据渲染到页面中去。
PS:使用 uni.$emit() 时,传输的数据格式必须是对象!
运用Vue的特性实现子传父
1、在子组件中利用按钮添加一个点击事件,利用 this.$emit() 将子组件的数据传给父组件。
2、父组件中通过子组件的自定义的事件名再去利用 this.$on() 去接收子组件传过来的数据。
3、参数 e 就是接收到的数据,可以再对接收到的数据加以处理。
兄弟组件的通信机制
个人理解:
1、在uniapp项目的目录下的common文件夹中创建一个bus.js文件,作为一个‘通信车’,用于传输数据
2、创建Acom和Bcom两个兄弟组件
3、分别在Acom和Bcom两个兄弟组件之间 Acom组件引入bus.js通信车文件,通过事件车 bus.$emit() 将数据传出去
4、Bcom引入bus.js通信车文件,通过事件车bus.$on() 将数据接收进来