ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、项目目录下创建文件夹components ## 二、在components下右键创建vue组件 ## 三、创建成功组件后可以有两种方式的引入 1、全局引入 2、局部的引入与使用 ``` <template> <view class="content"> <Child></Child> </view> </template> <script> import Child from "@/components/child.vue" export default { data() { return { title: 'Hello' } }, onLoad() { }, methods: { }, components:{ Child } } </script> ``` ## 四、父组件和子组件传递信息 1、父组件 ``` <template> <view class="content"> <Child msg="我是父组件定义的信息"></Child> </view> </template> <script> import Child from "@/components/child.vue" export default { data() { return { title: 'Hello' } }, onLoad() { }, methods: { }, components:{ Child } } </script> ``` 2、子组件 ``` <template> <view> 我是组件 <view>{{msg}}</view> </view> </template> <script> export default { data() { return { }; }, props:['msg'] } </script> <style scoped> </style> ``` ## 五、子组件和父组件通信 1、父组件 ``` <template> <view class="content"> <Child :msg="titles" @abc="hello"></Child> </view> </template> <script> import Child from "@/components/child.vue" export default { data() { return { titles:"父组件和子组件通信" } }, onLoad() { }, methods: { hello(){ this.titles="子组件和父组件通信" } }, components:{ Child } } </script> ``` 2、子组件 ``` <template> <view> 我是组件 <view>{{msg}}</view> <view> <button type="default" @click="cc">按钮</button> </view> </view> </template> <script> export default { data() { return { }; }, props:['msg'], methods:{ cc(){ this.$emit('abc') } } } </script> <style scoped> </style> ``` ## 六、子组件向父组件传递参数 1、父组件 ``` <template> <view class="content"> <Child :msg="titles" @abc="hello"></Child> </view> </template> <script> import Child from "@/components/child.vue" export default { data() { return { titles:"父组件和子组件通信" } }, onLoad() { }, methods: { hello(mm){ this.titles=mm } }, components:{ Child } } </script> ``` 2、子组件 ``` <template> <view> 我是组件 <view>{{msg}}</view> <view> <button type="default" @click="cc">按钮</button> </view> </view> </template> <script> export default { data() { return { }; }, props:['msg'], methods:{ cc(){ this.$emit('abc','我是子组件通过事件向父组件传递的参数,替换掉父组件的内容') } } } </script> ``` ## 七、全局组件通信 1、API uni.$on() 实例: a、首先定义一个事件方法 ``` <template> <view> 用户列表 </view> </template> <script> export default { data() { return { } }, onLoad() { uni.$on('getinfosss',()=>{ console.log('user组件中的全局事件被触发') }) }, methods: { } } </script> ``` 注意:定义了一个事件方法后可以在任意一个地方去触发这个方法 b、触发全局方法 ``` uni.$emit('getinfosss') ``` 注意:通过方法触发 2、vuex全局状态管理