关于本站
“最难不过坚持”
本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作
有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339
2655
39
分类目录
最新评论
- https://jueru.net/
-
- :weixiao:
-
- :shuijiao: :weiqu: :zhenbang: :leng:
-
- :yiwen: :yiwen: :yiwen: :yiwen:
-
- 这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
-
文章标签更多
Vue github案例,全局事件总线,pubsub-js消息订阅与发布
效果图:
网上找到一篇详细的文章,记录一下:https://blog.csdn.net/m0_53022813/article/details/127418134
以下代码是成品,包含全局事件总线和pubsub-js消息订阅与发布两种方式
1,main.js 安装全局事件总线
import Vue from 'vue' import App from './App.vue' Vue.config.productionTip = false new Vue({ render: h => h(App), beforeCreate(){ Vue.prototype.$bus = this // 安装全局事件总线 } }).$mount('#app')2,App组件
<template> <div id="app"> <Search/> <List/> </div> </template> <script> import Search from './components/Search.vue' import List from './components/List.vue' export default { name:'App', components:{ Search,List } } </script> <style> </style>3,List组件-全局事件总线绑定自定义事件/pubsub-js订阅消息
<template> <div> <!-- 展示用户列表 --> <ul v-show="info.users.length"> <li v-for="user in info.users" :key="user.id"> <a href="user.html_url" target="_blank"> <img :src="user.avatar_url" alt=""> </a> <br> {{user.login}} </li> </ul> <!-- 展示欢迎词 --> <h2 v-show="info.isFirst">欢迎使用!</h2> <!-- 展示加载中 --> <h2 v-show="info.isLoading">加载中...</h2> <!-- 展示错误信息 --> <h2 v-show="info.errMsg">{{info.errMsg}}</h2> </div> </template> <script> import pubsub from 'pubsub-js' export default { name:'List', data(){ return { info:{ isFirst:true, // 是否初次展示 isLoading:false, // 是否加载中 errMsg:'', // 错误信息 users:[] } } }, mounted() { // 方式一:全局事件总线 // this.$bus.$on('updateListData',(dataObj)=>{ // // this.info = dataObj // 这样isFirst属性会丢失 // this.info = {...this.info,...dataObj} // 合并对象,重复的属性以后面为主 // }) // 方式二:pubsub-js消息订阅与发布 this.updateListDataId = pubsub.subscribe('updateListData',(msg,dataObj)=>{ this.info = {...this.info,...dataObj} }) }, beforeDestroy() { // this.$bus.$off('updateListData') // 解绑 pubsub.unsubscribe(this.updateListDataId) // 取消订阅 }, } </script> <style scoped> li{ float: left; width: 200px; list-style: none; text-align: center; } li img{ width: 100%; height: 200px; } </style>4,Search组件-触发全局事件总线事件/pubsub-js发布消息
<template> <div> <input type="text" v-model="keyword"> <button @click="searchUsers">搜索</button> </div> </template> <script> import axios from 'axios' import pubsub from 'pubsub-js' export default { name:'Search', data(){ return { keyword:'' } }, methods:{ searchUsers(){ // 全局事件总线 // 请求前更新List数据-欢迎使用变成加载中 // this.$bus.$emit('updateListData',{isFirst:false,isLoading:true,errMsg:'',users:[]}) // axios.get(`https://api.github.com/search/users?q=${this.keyword}`).then( // response=>{ // // console.log(response.data); // this.$bus.$emit('updateListData',{isLoading:false,errMsg:'',users:response.data.items}) // }, // error=>{ // // console.log(error.message); // this.$bus.$emit('updateListData',{isLoading:false,errMsg:error.message,users:[]}) // } // ) // 消息订阅与发布 pubsub.publish('updateListData',{isFirst:false,isLoading:true,errMsg:'',users:[]}) axios.get(`https://api.github.com/search/users?q=${this.keyword}`).then( response=>{ // console.log(response.data); pubsub.publish('updateListData',{isLoading:false,errMsg:'',users:response.data.items}) }, error=>{ // console.log(error.message); pubsub.publish('updateListData',{isLoading:false,errMsg:error.message,users:[]}) } ) } } } </script> <style> </style>
赏
相关推荐
接口返回request failed with status code 500错误
接口返回request failed with status code 500错误
登录界面,验证账号密码成功,但是返回500错误
可能原因:linux服务器,用tp5搭建的后台及接口,会生成一部分缓存文件,但是linux默认没有权限创建数据,所以,只要在缓存文件夹runtime添加写的权限即可
解决errors and 0 warnings potentially fixable with the `--fix` option.问题
解决errors and 0 warnings potentially fixable with the `--fix` option.问题
项目正常运行,就是有这个提示
找到.eslintrc.js注释掉// 'eslint:recommended'
评论加载中...
前一篇: vue中使用animate.css
后一篇: vue中的插槽(slot)