Vue项目实战--空间论坛(1)

环境准备

安装好node.js,Vue后

添加插件

router---路由,多页面的应用

vuex---在多个组件之间维护同一个数据

添加依赖

bootstrap---美工

popperjs/core

vue项目介绍

views-----对应vue文件,页面

router-----路由,页面,createHashHistory ------> createWebHistory

components----存组件(views也可存组件)

根组件---App.vue

入口------main.js (store-----即vuex) 将整个APP组件挂载到app这个元素上,app在public--index.html上,将所有js文件打包成一个js文件

style中的scoped作用是让各个组件之间互不影响,会给每个组件加上一个随机数值

vue是一个组件化框架

每一vue组件都会导出一个对象,此对象的两个属性为name,components

components表示的是在tmplate中会用到哪些组件,将用到的组件放到components中

网站实现

网站构建

根组件中引入bootstrap的样式与脚本,并创建导航栏组件 ,可在bootstrap上搜索你喜欢的样式

创建NavBar组件

创建页面

创建Content组件,并添加到各个页面

设置各个页面的路由,并在各个页面内引入各个组件

在NavBar中使用router-link :to="{}" 在前端渲染每个页面,名称为各页面定义的接口中的name

创建个人动态页面

创建相关组件

使用bootstrap的grid进行布局 div.row>(div.col-3+div.col-9)

userprofileinfo

实现userprofileinfo的组件并引入UserProfileView.vue

在UserProfileView.vue中写Composition API 的 setup函数,用于存储信息

并绑定user到组件中v-bind:user="user"

子组件将接收到父组件的参数放到props中,便可在子组件中用user,传递对应的值

在组件定义入口函数setup,用computed实现动态计算fullName,使得可以实现对象之间的计算,然后返回fullName即可

处理关注按钮可用 v-if,v-else 实现按钮的

在vue里面绑定事件,定义一个事件处理函数

可在子组件中定义 follow unfollow 函数 并返回

在子组件的button中用@click=""绑定事件处理函数 follow unfollow

在父组件中绑定事件 follow unfollow,并定义事件触发函数,follow unfollow

子组件要修改父组件的信息的话需要触发父组件中绑定的函数,子组件可使用context.emit()

总结:子组件要修改父组件信息时,首先在子组件中绑定并定义触发函数,子组件使用**context.emit()调用父组件的事件,**父组件中绑定事件和事件函数,并在父组件中定义事件函数,通过事件函数来操作父组件中的信息

在父组件中定义帖子列表并返回, 然后传递到UserProfilePosts.vue子组件中

在UserProfilePosts.vue中接受父组件传递的对象

实现发帖功能:

编写UserProfileWrite.vue组件,并在父组件中引入,并设置样式

在子组件中设置组件入口函数setup(对象用reactive,变量用ref)

可以用v-model将textarea中的内容绑定到content,content.value即是textarea,

定义发帖函数,可以将贴子的内容返回,并绑定button

发帖用到的帖子存在于父组件,需要实现子组件像父组件的通信,可以使用触发函数的方法来传递信息

在父组件中实现绑定的事件触发函数,然后返回,并绑定事件与函数,可用unshift在数组前更新

unshift 是数组的一个方法,用于在数组的开头添加一个或多个元素,并返回新的数组长度

在子组件触发函数中用context.emit()触发父组件中的事件

注:@绑定事件和函数,:绑定属性

相关推荐
卸任17 小时前
Vibe coding工具使用心得
前端·ai编程
brien918 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance18 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M18 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写18 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李18 小时前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易18 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
清晨Coding18 小时前
删了 Cookie 还能自动登录?Google系网站登录态自动恢复的原理分析
javascript
风骏时光牛马19 小时前
前沿视界
前端
kyriewen19 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员