当前位置: 首页 > news >正文

网站主题同企网站建设做网站

网站主题,同企网站建设做网站,软文广告有哪些,网站联动项目实战 实现userlist页面 获取userlist列表,可使用ajax,axios 实现 这里采用ajax实现,需要添加Jquery依赖,然后在UserListView.vue中引入 在UserListView.vue组件的入口函数中定义users变量,并引入ref 使用ajax从云端动…

项目实战

实现userlist页面

获取userlist列表,可使用ajax,axios 实现    

这里采用ajax实现,需要添加Jquery依赖,然后在UserListView.vue中引入

在UserListView.vue组件的入口函数中定义users变量,并引入ref

使用ajax从云端动态获取用户

并将返回结果展示,根据喜好调整css样式

注:响应式布局,比如框越大头像越大

实现访问个人页面的路由

修改路由,使个人页面带有参数

可在UserProfileView.vue中使用API----useRoute 并在导航栏组件中引入参数params:{userId: }

 

创建登录退出模块

从bootstrap中找到合适的登录按钮

动态获取用户名和密码,需要一个双向绑定的变量,响应式变量用ref

在入口函数中定义变量username,password,error_message并返回对象

用v-module分别把username,password与input标签双向绑定起来,因为div需要修改

注意:访问ref值的时候需要加上value

 login函数,在表单标签中添加点击事件触发login函数,并返回,此时表单会刷新,原因是绑定的是在表单提交之前的事件,执行完login函数后会提交它原本的时间,可用prevent阻止掉默认事件的发生

 由于各个页面之间都可能用到用户的个人信息,所以可以定义全局变量来存用户的个人信息

vue中提供一个维护全局变量的机制vuex 

 

 

 注:action中定义对state的各种操作,所有对state的更新方式

但是不能对state进行修改,对state的修改放在mutations执行

vue中对mutations的限制是不能执行异步操作-----从云端获取用户信息,获取后再更新state的是不能写在mutations中

modules模块的作用是把state中的对象做分割

方法:

 

 传统登录验证方式:

 js不能访问浏览器cookie

Jwt验证方式:

 

jwt中有一关键字user_Id

token可以在jwt网站中进行解析编码

注:get方法访问某个链接,所有参数都会放到链接中

创建user.js用于构建全局变量

login(context,data){}中参数context是传API,data为自己定义函数

在LoginView.vue中导入useStore,并调用user.js中actions中的login函数,调用此函数需要把login当做dispatch中的参数

如下:

在user.js中解析出resp

解码resp中的信息需要添加jwt-decode,并在user.js中引入,用jwt-decode导出的函数解码,从而

获取用户信息

并在登录成功后,调用getinfo接口,获取用户信息

并加上jwt验证,因为后端已经对此接口进行了授权,需要加上headers,授权方式为自定义


成功后将resp的内容更新到state中,actions中不能直接更新,所以要在mutations中更新,可在mutations中实现updateUser

在解码成功函数中调用mutations中的updateUser,调用方法如下

成功后调用 Login.view中的回调函数success,success传到了data参数中

失败则调用失败函数

由于acces每5分钟过期,因此可以每4.5分钟刷新一次令牌,可调用刷新JWT令牌的接口,并更新acces

 在登录页面组件中引入router,使得成功函数路由到相关链接,并在error函数中设置error_message,每次调用登录函数的时候清空

登录成功后将用户的用户名展示在登录NarBar上:

可以在NavBar中判断一下是否登录,此外登录成功的话还可以直接跳转个人空间页面

实现退出设置

登录是获取了access,再登出的时候只要消去token即可,或者清空state中的信息即可

在登录后,退出标签中加入触发函数,并在入口函数中编写logout函数        

注:只要是修改全局state就要把修改的函数定义在actions中(如果是同步的写在哪都可以,异步的话只能写在actions)

 

 在组件中调用mutations中的API:

调用actions则用dispatch 

注:store在html中引用要加$

实现查看好友动态

在UserListView中实现一个打开个人信息的函数,open_user_profile

并在点击卡片时返回

删除导航栏中的用户动态

注:vue在后台判断是否为执行逻辑,如果是则会封装成一个执行逻辑

   =>

注:不加()  传的是定义,加()传的是函数调用

<template><ContentBase><div class="card" v-for="user in users" :key="user.id" @click="open_user_profile(user.id)"><div class="card-body"><div class="row"><div class="col-1"><img :src="user.photo" alt="" class="img-fluid"></div><div class="col-11"><div class="username">{{ user.username }}</div><div class="follower-count">{{ user.followerCount }}</div></div></div></div></div></ContentBase>
</template><script>import ContentBase from '@/components/ContentBase.vue';import {ref} from 'vue';import $ from 'jquery';import router from '@/router/index';import {useStore} from 'vuex';export default {name: 'UserListView',components: {ContentBase},setup(){const store=useStore();let users=ref([]);$.ajax({type: "get",url: "https://app165.acapp.acwing.com.cn/myspace/userlist/",success:function(resp) {users.value=resp;console.log(resp);}});const open_user_profile=userId=>{if(store.state.user.is_login){router.push({name:'userprofile',params:{userId:userId,}})}else{router.push({name:'login',})}}return{users,open_user_profile,}}}</script><style scoped>img{border-radius: 50%;}.username{font-weight: bold;height: 50%;}.follower-count{font-weight: 12px;color: grey;height: 50%;}.card{margin-bottom: 20px;cursor: pointer;}.card:hover{box-shadow: 2px 2px 10px black;transition: 500ms;}</style>

 实现查看好友动态,需要动态从云端拉取用户信息

注:HTML中      src="user.photo"----字符串        :src="user.photo"----变量

使用API获取用户的帖子 

动态计算当前用户是不是自己,不是自己的话就不展示发帖功能

点击自己页面则可发帖,在根组件中加入完整路径强制刷新(原因是判断链接是否相同时是不包含参数的)

实现动态添加/删除帖子

在UserProfileWrite组件中调用发帖的API

帖子如果先在前端更新,但是提交有bug则可能出现数据库中并没有存储帖子的情况,出现数据不一致

但是等待后端返回再刷新的话不如先刷新流畅

注意:不要忘记更新用户动态中帖子的长度posts.count=resp.length;

给postlist添加删除按钮 ,并设置只有在展示自己的页面中才能展示出来(所以当前的页面可以使用动态计算)

当前的id可以从用户动态页面(父组件中)进行传回

 

 实现点击删除帖子的功能

绑定delete事件和delete函数

在子组件中定义delete事件

 

 

调用后端删除API,从数据库中删除帖子 

restAPI

 实现注册模块

可复用修改注册模块的代码,并调用注册的API

实现关注模块

http://www.yayakq.cn/news/720380/

相关文章:

  • 做网站之前需要准备什么条件优化服务内容
  • 江苏城乡和住房建设厅网站广州网站设计推荐柚米
  • 网站右下角广告代码做网站都需要会什么软件
  • 手机h5建站阿里指数查询官网入口
  • 东莞微网站建设服务商自媒体官网平台注册
  • 企业网站推广的策略网店运营计划书
  • 团购酒店的网站建设软文推广哪个平台好
  • 网站后台修改导航栏网站图片切换代码
  • 17网站一起做网店揭阳谷歌seo搜索引擎下载
  • 网站建设代码怎么做个手机版的网站吗
  • 门户网站 营销公司网站费用怎么做分录
  • 怎么在赶集网上做招聘网站做网站好的网站建设公司排名
  • 学校网站建设系统上海室内设计事务所
  • 上海企业网站seo新泰网站开发
  • 四川住房建设厅网站首页我的家乡网站建设模板
  • 宁波手机建站模板开发公司和建筑公司同一法人
  • 做网站应该先从什么地方开始开发网站网络公司排行
  • 网站建设服务定制企业网站建站那种好
  • php部署网站关于电商平台
  • 常德网站开发公司苏州平台公司
  • 游戏门户网站模板网站制作完成
  • 网站专业术语中 seo意思是广州有哪些科技公司
  • 成都公司的网站制作用vs2010做网站的好处
  • 四川住房和城乡建设厅网站官网机械产品做哪个网站
  • 网站配色方案 对比色坪山附近公司做网站建设哪家技术好
  • 如何网站网站做代理摄影网站开发
  • 网站 验收建筑企业网站源码
  • phpcms旅游网站模板下载网站添加文章之后更新缓存访问网站就需要输入账号密码
  • 专业seo站长工具全面查询网站网站受攻击
  • 汕头网站建设公司有哪些专业的网站建设价格低