刚学vue,文档还没看全,写一个超简陋版知乎练手记录,因为css不太会所以很难看

会计量超详细记录,主要为做记录

包含左抽屉式导航,下拉更新,上拉加载,轮播

用到:

Font Awesome

muse-ui

mint-ui

vuex

先创建项目:

vue init webpack weihutest

cd weihutest/

cnpm install

cnpm i mint-ui -S

cnpm install --save muse-ui

cnpm install --save css-loader

cnpm install vuex -S

目录结构:

新建api,views,views/home,views/content,vuex目录,css和fonts目录是下载Font Awesome后复制过来的

新建vuex/store.js,views/home/home.vue,views/content/content.vue,api/contentdata.js(伪造数据,假装与后台通讯,哈哈哈)

components/appbar.vue(内容页头部组件),components/drawer.vue(左侧抽屉式导航加首页头部组件),swipe.vue(首页轮播组件)

编写vuex/store.js

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)const store = new Vuex.Store({// 定义状态state: {//这是要用到的数据形式contentdata1: [{id:"1",title:"xxxxxx",content:"xxxxxxxxxxx"},],},//修改状态mutations:{newData1(state,msg){state.contentdata1=msg},}
})
//导出
export default store

其实这个项目感觉用不到vuex,只是为了用而用

关于vuex可以看文档,或者这篇博客我觉得写得很简单http://www.cnblogs.com/wisewrong/p/6344390.html

修改main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
// 引入mint组件 和 样式
import MintUI from 'mint-ui';
import 'mint-ui/lib/style.css';
// 引入muse组件 和 样式
import MuseUI from 'muse-ui'
import 'muse-ui/dist/muse-ui.css'
//引入css文件
import './assets/css/font-awesome.min.css'
//引入vuex
import Vuex from 'vuex'
import store from './vuex/store'Vue.use(Vuex)
Vue.use(MintUI)
Vue.use(MuseUI)Vue.config.productionTip = false/* eslint-disable no-new */
new Vue({el: '#app',router,//使用storestore,template: '<App/>',components: { App }
})

编写router/index.js(路由跳转)

import Vue from 'vue'
import Router from 'vue-router'
import home from '@/views/home/home'
import content from '@/views/content/content'Vue.use(Router)export default new Router({routes: [{path: '/',name: 'home',component: home},{path: '/index',name: 'content',component: content}]
})

修改App.vue

注释掉或者删掉下面这句话

<img src="./assets/logo.png">

这样一来启动程序页面就是一片空白

提前配好路由是为了组件写好就只可以放进views中测试可以马上在页面看结果

编写api/contentdata.js(先写着,作用就是假装和后台假模假样的通讯,本来这里应该是写ajax请求的,现在直接写数据,数据还是某一天知乎日报上的)

function getdata1(){datas = [{id:"1",title:"第一次听见鸟儿说「欢迎光临」时,我是震惊的",content:"鹦鹉为什么能说话?小叶叔叔,北京林业大学鸟类学博士在读两千多年前的《山海经 · 西山经》里曾记载:“黄山,有鸟焉,其状如鸮(xiao),青羽赤喙(hui,鸟兽的嘴),人舌能言,名曰鹦鹉。”意思是,在黄山有一种鸟儿,浅绿色的羽毛,红色的喙,能像人一样说话,名字叫鹦鹉。可见,古人已经发现了鹦鹉有学人说话的本事。大家还记得吗? 2011 年,网络上疯传着一只鹩哥引吭高歌《忐忑》的视频(鹩哥唱“忐忑”),一时间这只神奇的鸟儿红遍大江南北。人们惊呼,这鸟儿要逆天啊!竟然能唱“神曲”!鸟儿真的能像人一样,用语言和歌曲来表达自己的情感吗?",},{id:"2",title:"有哪些对犯罪心理学影响深远的案件?",content:"在犯罪心理学领域,有哪些被反复讨论、推衍的犯罪案件?分别指向了怎样的研究结果?\十方迦南,你以为你以为的就是你以为的\首先明确一个定义,就是犯罪心理学领域的一些被反复讨论和推衍的案件,并不一定是大案和有名的案件,更多的大案要案可能改变的是法律,可能不是犯罪心理学的研究,我们现在开始。\95 年 5 月山东某监狱在押强奸幼女犯人张某,与同样是在押犯人的王某发生了鸡奸行为。王某为了洗清自己,把张某写给他的信和字条留下来交给队长,把责任都推给对方。结果张某受到处分,被撤销执勤员,而王某却因检举有功当上了考评员。张某自认犯错误是受到了王某的引诱与教唆,监狱民警处理不公,便想调去别的地方服刑,还准备了一把刀企图杀死王某。后被发现,被介入。\(此案件虽然是很小的一个案件,但是其影响是心理咨询被用来作为有效介入手段,防止了狱内暴力犯罪的发生,在这个过程中,犯罪心理咨询的作用被明确,而后发展出来的一系列心理咨询方法在针对罪犯的适用,帮助了狱内心理重建的进步。)\2. 1954 年,西德法院针对一起儿童性侵犯案件召开专家座谈会,报告这起案件的人是一位心理学家,叫 Udo Undeutsch,他在资讯过程中发现了这个个案所经历的现实行为,当时这个个案只有 14 岁,而个案在之前所说的经历是不被很多人相信的,但是心理学家坚信个人的证词的可信度,于是有了专家会议。\(此案确立了一种在测谎外的谎言识别技术,陈述有效性评价技术—SVA,SVA 在德国,瑞典等国家发展成为在儿童性侵犯案件中决定儿童证人证言可信度的技术,因为在司法实践中去判断一个儿童性侵害案件是有难度的,缺乏证据,而儿童通常处于一个很不利的证言位置,成人有不信任儿童陈述的倾向。在此次专家会议之后,西德确定了在所有有争议的儿童性侵害案件中,都要有心理访谈和 SVA 出现,后这一评价技术发展到世界众多国家。)\3. 万宁小学校长开房事件,2013 年 05 月 08 日,海南省万宁市后郎小学 6 名读 6 年级的小学女生集体失踪,引起家长恐慌,随后面在不同区域找回,但脖子,手出现青肿,6 名女孩下体均受到不同程度的伤害。万宁市第二小学校长陈在鹏被发现在这期间进入两名女生所在房间。\(此案件之后 20 天内至少 8 起校园内猥亵性侵犯幼女案被揭露,而后续调查发现,仅某些省,过去 2010-2013 年就有 2506 名女童遭遇性侵害。这个案件使得儿童性侵犯和性虐待的问题一下浮出水面,针对有恋童倾向的犯罪行为人心理和行为的研究,以及针对受害者的心理干预和重建都被放到了第一序列。)\4. 甘肃白银案就不多介绍了,网上有介绍,之前也分析过。\(此案件被讨论的很多的原因主要是人格障碍对于犯罪者犯罪行为的影响,以及本身形成转变时的影响,除了这方面外,还有变态型犯罪者的分析和病理问题的设想等。)\5. 2011 年 08 月 24 日,台大医院艾滋器官案,台大附属医院错误的把一名艾滋病死者的器官移植给了病人,导致 5 名接受移植的病人可能感染,47 名移植手术医护人员可能感染。\(此案件主要是掀起了一场关于过失犯罪心理的巨大讨论,而在实践中,过失犯罪的数量和占比绝对是不能忽视的。)\6. 延边传销 3000 人案,2004 年 11 月,延边出现了交 500 元,买两盒保健品,然后介绍给自己的亲友,一年就能暴富的传销案件,短短一年时间,4000 人参与到了这场传销中,但是上线只有 200 人,剩下的多数参与者血本无归。\(此案件轰动一时,因为人数众多,且发展极快,这个案件比较典型的讨论要点在于传销的犯罪心理特点,以及群体犯罪中的犯罪心理特点和行为特点。)\7. 北京顺义“二胡案”,二胡案是新中国成立以来首例受审的黑社会性质组织案,以二胡兄弟为核心的犯罪组织,在 96-05 年这段时间里,实施故意伤害 2 起,非法买卖枪支弹药 1 起,非法持有 2 起,敲诈勒索 20 起。\(此案件作为第一例受审,主要是把我国关于有组织犯罪的犯罪心理研究提了出来,有组织犯罪的头目和跟班的犯罪心理是有很大区别的,并且这些区别严重影响着组织稳定性和分工情况)\这样的案子其实是有很多的,在犯罪心理学发展的过程中,都被反复提出讨论,也都对犯罪心理学领域中的某个概念和问题起到过影响,先回答到这里。\希望回答可以帮到你。",},{id:"3",title:"3333333333",content:"33333333333333333", },{id:"4",title:"44444444444",content:"4444444444444444", },{id:"5",title:"55555555555",content:"55555555555555", },{id:"6",title:"6666666666666",content:"66666666666666666", },{id:"7",title:"777777777",content:"777777777777777", },{id:"8",title:"888888888",content:"88888888888888", },{id:"9",title:"999999999",content:"9999999999999999", },{id:"10",title:"10101010101010101010",content:"1010101010101010101010", },{id:"11",title:"111111111111111",content:"1111111111111111111111", },]return datas;
}
//导出
module.exports = getdata1;

编写组件轮播组件components/swipe.vue

<template><div class="vue-swipe"><!--轮播使用mint-ui组件 :auto 为轮播间隔时间 --><mt-swipe :auto="10000"><mt-swipe-item v-for="item in swipeList" :key="item.id"><div class="imgtitle"><a :style="{background: 'url(' +item.img+ ')'}">{{item.title}}</a></div></mt-swipe-item>     </mt-swipe></div>
</template>
<script>
//轮播组件
export default{name:"swipe",data(){return {swipeList:[{img: "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3799833582,3315348340&fm=27&gp=0.jpg",title:"11111",},{img: "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3799833582,3315348340&fm=27&gp=0.jpg",title:"22222",},{img: "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3799833582,3315348340&fm=27&gp=0.jpg",title:"33333",}],}},
}
</script>
<style scoped>.mint-swipe{height: 100px;}.mint-swipe a{height: 100px;width: 100%;display:block; }
</style>

数据是写死的,不是获取的

修改views/home/home.vue,倒入组件显示看结果

<template>
<div>
<swipe></swipe>
</div>
</template><script>
import swipe from '../../components/swipe.vue'
export default {components:{swipe},
}
</script><style>
</style>

编写components/drawer.vue(左侧抽屉式导航和首页顶部)

<template><div class="vue-drawer"><mu-appbar title="首页"  ><!--class="fa fa-navicon fa-lg"是css图标下面顶部和左侧导航是参考muse官网例子改写的--><mu-raised-button class="fa fa-navicon fa-lg"  @click="toggle(true)" slot="left"/></mu-appbar><mu-drawer :open="open" :docked="docked" @close="toggle()"><mu-list @itemClick="docked ? '' : toggle()" v-for="item in datalists" :key="item.id" ><mu-list-item :title="item.title" @click="gocontent(item.id,item.title,item.content)"/><hr></mu-list></mu-drawer>
</div>
</template><script>export default {name:"drawer",data () {return {open: false,docked: true,datalists:[{id:"111",title:"xxx111",content:"xxx111xxx"},{id:"222",title:"xxx222",content:"xxx222xxx"},{id:"333",title:"xxx333",content:"xxx333xxx"},],}},methods: {toggle (flag) {this.open = !this.openthis.docked = !flag},gocontent(id,title,content){this.$router.push({ name:'content',params: { id:id,title: title,content:content }})}},
}
</script><style scoped>
.mu-appbar{position: fixed;top: 0;background-color: #577dc2;
}
.mu-raised-button{background-color: rgba(0, 0, 0, 0);webkit-box-shadow:none;box-shadow:none;top: 10px;
}
</style>

修改views/home/home.vue,倒入组件显示看结果,因为内容页面没有写所以导航跳转到空白页

<template>
<div><drawer></drawer><swipe></swipe>
</div>
</template><script>
import swipe from '../../components/swipe.vue'
import drawer from '../../components/drawer.vue'
export default {components:{swipe,drawer},
}
</script><style>
</style>

编写components/appbar.vue 内容页头部,加一个返回首页按钮

<template>
<div class="vue-appbar"><mu-appbar title=""><mu-icon-button  class="fa fa-chevron-left" slot="left" @click="quit"/></mu-appbar>
</div>
</template><script>
export default{methods:{quit(){this.$router.go(-1)}},
}
</script><style scoped>
.mu-appbar{position: fixed;top: 0;background-color: #577dc2;
}
</style>

修改content/content.vue,有个不好消息,我突然取消了vuex,用路由传值,所以之前vuex/store.js这些都不需要,尴尬

<template>
<div><appbar></appbar><mu-card-header :title=title subTitle=""/><mu-card-title :title=title subTitle=""/><mu-card-text>{{content}}</mu-card-text>
</div>
</template><script>
import appbar from '../../components/appbar.vue'export default {name:"content",data(){return{content:this.$route.params.content,title:this.$route.params.title}},
//     computed: {
//       author () {
//           return this.$store.state.contentdata1.content
//       }
//    },components:{appbar},
}
</script><style scoped>
</style>


上图是从导航跳过来的结果

修改views/home/home.vue

<template>
<div><!-- mu-refresh-control 是下拉更新组件refresh函数是从新获得数据再覆盖原来的数据,等于更新--><mu-refresh-control :refreshing="refreshing" :trigger="trigger" @refresh="refresh"/><drawer class="drawer"></drawer><swipe class="swipe"></swipe><mu-list><!--数据列表,每一项都有一个点击事件,将内容通过路由传到内容页--><div :id="data.id" v-for="data in datas" :key="data.id" @click="goc(data.id,data.title,data.content)"><mu-list-item :title="data.title"/><mu-divider/></div></mu-list><!--mu-infinite-scroll 上拉加载组件loadMore函数这里是重新获得数据再加进列表中,可以做成根据页数获得数据再加进列表 --><mu-infinite-scroll :scroller="scroller" :loading="loading" @load="loadMore"/>
</div>
</template><script>
import swipe from '../../components/swipe.vue'
import drawer from '../../components/drawer.vue'
import getdata1 from '../../api/contentdata'export default {name:"home",data(){return{datas:getdata1(),loading: false,scroller: null,refreshing: false,trigger: null,}},methods:{//跳转到内容页,通过路由传值goc(id,title,content){this.$router.push({ name:'content',params: { id:id,title: title,content:content }})},//上拉加载loadMore(){this.loading = truevar lists = getdata1()setTimeout(() => {for (var line in lists) {this.datas.push(lists[line])}this.loading = falsethis.refreshing = false}, 3000)},//下拉更新refresh(){this.refreshing = truevar listsx = getdata1()setTimeout(() => {this.datas = listsxthis.refreshing = false}, 2000)}},//直接加载mounted(){this.trigger = this.$elthis.scroller = this.$el// this.$store.commit("newData1",this.datas)},//导入组件components:{swipe,drawer},
}
</script><style scoped>
.drawer{ position:absolute;top:0;left:0;
}
.swipe{top:0px;
}
.datac{height:50px;
}
</style>

下拉更新-------------------------------

上拉加载----------------

内容页--------------

好了,超简陋版知乎就这样了

初用vue2写一个超简陋知乎日报(不与知乎日报api交互)超详细记录相关推荐

  1. 用vue2写一个新闻列表页,和新闻详情页,该怎么做?

    首先,您需要安装Vue CLI并创建一个新项目.接下来,您可以使用Vue的单文件组件编写新闻列表页和新闻详情页. 新闻列表页: 在项目中创建一个名为"NewsList"的组件. 在 ...

  2. 帮我用python flask框架写一个可以上传英文pdf然后通过调取百度翻译api翻译为中文然后保存为pdf文件的代码...

    下面是一个简单的代码示例,可以帮助您使用 Python Flask 框架实现上传英文 PDF,并通过调用百度翻译 API 将其翻译为中文,然后保存为 PDF 文件: from flask import ...

  3. 【Python 基础】网络编程 - Python写一个简单的HTTP服务端和客户端,实现Client/Server交互

    1.HTTP 首先讲一下http和https,详细可以去看runoob http-vs-https 基本概念 HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用 ...

  4. unity绘制管道_在Unity里写一个纯手动的渲染管线(一)

    随着Unity3D 2018的面世,Scriptable Rendering Pipeline,也就是可编程渲染管线这项新技术变得家喻户晓.官方在推出这项技术的时候,着重强调了他的各种优点,而笔者总结 ...

  5. 从零开始写一个武侠冒险游戏-2-帧动画

    从零开始写一个武侠冒险游戏-2-帧动画 ---- 用基本绘图函数实现帧动画 作者:FreeBlues 修订记录 2016.06.10 初稿完成. 2016.08.03 增加对 XCode 项目文件的说 ...

  6. 已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法...

    已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法 #define N 10 //二叉树节点的个数 char postorderstr[]={};//后序序列 char i ...

  7. JAVA-集合作业-已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数...

    第二题 已知有十六支男子足球队参加2008 北京奥运会.写一个程序,把这16 支球队随机分为4 个组.采用List集合和随机数 2008 北京奥运会男足参赛国家: 科特迪瓦,阿根廷,澳大利亚,塞尔维亚 ...

  8. 自己写一个调查问卷Web项目 (超详细版)

    一.项目介绍 发起问卷,管理问卷信息,把问卷结果通过可视化方式呈现出来 二.技术栈 Servlet MySQL Apache Echarts 三.项目功能 用户管理:注册.登录.登出 题库管理:录制题 ...

  9. 【牛客刷题】上手用C语言写一个三子棋小游戏超详解哦(电脑优化)

    作者:[南航科院小张 南航科院小张的博客 专栏:从c语言的入门到进阶 学习知识不只是要懂,还要会用:想要找到好的工作,这里给大家介绍一件可以斩获诸多大厂offer的利器–牛客网 点击免费注册和我一起开 ...

最新文章

  1. android os被删除怎么办,手机系统应用误删了怎么办 如何修复手机异常【详细介绍】...
  2. Android studio 使用NDK工具实现JNI编程
  3. PHP完整的一次请求过程:请求 dns nginx监听 转发给php-fpm worker处理 返给nginx
  4. iOS 9.0以后支持http协议
  5. 用计算机弹奏hop,关于职称计算机Photohop模拟练习题参考
  6. 【集训队作业2018】复读机【指数型生成函数】【单位根反演】【二项式定理】
  7. php的命名空间实例
  8. 小学生python游戏编程5----拼图游戏继
  9. 在Ubuntu下安装Visual Studio Code
  10. 部署外网网站(二)——宝塔搭建服务器
  11. 阿里达摩院最新FEDformer,长程时序预测全面超越SOTA | ICML 2022
  12. 二手苹果电脑交易的坑和辨别真伪的一些方法总结(下篇)
  13. Android点击按钮显示密码,Android 开发仿简书登录框可删除内容或显示密码框的内容...
  14. IO密集型线程和CPU密集型线程
  15. JavaScript基础——滚动事件、加载事件、三大家族
  16. IOST 项目更新:BB ,展望正面 | TokenInsight
  17. 苹果cms采集明星资源无分类绑定的解决方法
  18. 微信小程序:购物车加减
  19. vue 中 filter 的使用与注册
  20. 关于使用|作为分隔符

热门文章

  1. java城市链表_数据结构城市链表 1. 城市链表 [问题描述]将若干城市的信息 联合开发网 - pudn.com...
  2. 【社会网络分析_03】ucinet基础功能使用
  3. linux dx命令,在Linux系统上配置Wine中的DXVK
  4. 高级信息系统项目管理师(高项)软考论文评分标准(附历年高项论文题目汇总)
  5. 手机计算机字体变大,大师应对手机百度如何设置字体大小?
  6. delphi chrome获取html5,TChromium获取网页源代码delphi代码
  7. 声纹识别常用数据集简介
  8. Unity3D教程宝典之插件篇:Unity3D插件详细评测及教学下载
  9. LeetCode 6 ZigZag Conversion(Z型转换)(String)
  10. socket 收不到netty客户端消息_Netty高性能之道