| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 头条VUE代码 -> 正文阅读 |
|
[JavaScript知识库]头条VUE代码 |
main.js import Vue from 'vue' import App from './App.vue' import router from './router/index' Vue.config.productionTip = false new Vue({ ? render: h => h(App), ? router }).$mount('#app') 路由配置 import Vue from 'vue' import VueRouter from 'vue-router' import Home from '../page/Home.vue' import Detail from '../page/Detail.vue' Vue.use(VueRouter) let router = new VueRouter({ routes:[ ? ? { ? ? ? ? path:'/', ? ? ? ? component:Home ? ? }, ? ? { ? ? ? ? path:'/detail/:id', ? ? ? ? props:true, ? ? ? ? component:Detail ? ? } ] }) export default router APP.vue <template> ? <div id="app"> ? ?<router-view></router-view> ? </div> </template> <script>
export default { ? name: 'App', ? components: { ? ? ? } } </script> <style> *{ ? ? margin: 0; ? ? padding: 0; ? ? list-style: none; ? ? text-decoration: none; ? ? outline: none; } .flex{ ? display: flex; } .j-c{ ? justify-content: center; } .j-s{ ? justify-content: space-between; } .a-c{ ? align-items: center; } a{ ? ? color: black; } #app { ? /* width: 1200px; */ ? /* margin: 0 auto; */ ? /* border: 1px solid #ccc; */ } </style> Header.vue <template> ? <div class="head flex j-s a-c"> ? ? <img class="img1" src="/image/index/message.png" alt="" /> ? ? <div class="center flex a-c j-c"> ? ? ? <img class="img2" src="/image/index/wap_logo.png" alt="" /> ? ? ? <img class="img3" src="/image/index/titlebar_refresh.png" alt="" /> ? ? </div> ? ? <img class="img1" src="/image/index/search_normal.png" alt="" /> ? </div> </template> <script> export default { ? name: "Header", }; </script> <style scoped> .head { ? ? width: 100vw; ? height: 40px; ? background-color: #d33d3e; ? position: fixed; ? top: 0; ? left: 0; } .head .center { ? flex: 1; } .img1{ ? ? width: 36px; } .head .img2{ ? ? width: 122px; } .head .img3{ ? ? width: 24px; } </style> news.vue? ? <template> <div class="news"> ? ? <router-link :to="`/detail/${item.id}`" v-for="(item,index) in news" :key="index"> ? ? ? ? <div class="flex item j-s a-c"> ? ? ? ? <div class="left"> ? ? ? ? ? ? <div class="title">{{item.title}}</div> ? ? ? ? ? ? <div class="flex"> ? ? ? ? ? ? ? ? <div class="zd">置顶</div> ? ? ? ? ? ? ? ? <div class="pl">{{item.from}}</div> ? ? ? ? ? ? ? ? <div class="pl">评论 {{item.commentLength}}</div> ? ? ? ? ? ? </div> ? ? ? ? </div> ? ? ? ? <div class="right"> ? ? ? ? ? ? <img :src="item.img"> ? ? ? ? </div> ? ? </div> ? ? </router-link> </div> </template> <script> import axios from 'axios' export default { name:'News', data() { ? ? return { ? ? ? ? news:[] ? ? } }, created() { ? ? axios.get('/data/data.json').then(({data})=>{ ? ? ? ? this.news = data ? ? ? ? // console.log(this.news); ? ? }) }, } </script> <style scoped> .news{ ? ? padding: 5px 10px; ? ? margin-top: 40px; } .item{ ? ? border-bottom: 1px solid #eee; ? ? padding: 10px 0; } .title{ ? ? margin-bottom: 5px; } .zd{ ? ? border: 1px solid #d33d3e; ? ? color: #d33d3e; ? ? padding: 0 2px; ? ? font-size: 12px; } .pl{ ? ? color: #666; ? ? font-size: 12px; ? ? margin: 0 4px; } .right img{ ? ? width: 100px; } </style> detail.vue ? <template> ? <div class="detail"> ? ? <div class="title">{{ item.title }}</div> ? ? <div class="flex a-c"> ? ? ? <img class="logo" src="/image/datails/author.jpg" /> ? ? ? <div class="center" style="margin-left: 10px"> ? ? ? ? <div class="from">{{ item.from }}</div> ? ? ? ? <div class="time flex a-c"> ? ? ? ? ? {{ item.time | filterTime }}<span>评论{{ item.commentLength }}</span> ? ? ? ? ? <div class="btn">关注</div> ? ? ? ? </div> ? ? ? </div> ? ? </div> ? ? <div v-html="item.content"></div> ? </div> </template> <script> import axios from "axios"; // import moment from "moment"; import wfl from '../utils/wfl.js' // console.log(moment); export default { ? name: "Detail", ? props: ["id"], ? data() { ? ? return { ? ? ? item: {}, ? ? }; ? }, ? created() { ? ? axios.get("/data/data.json").then(({ data }) => { ? ? ? this.item = data.find((r) => r.id === this.id); ? ? ? // console.log(this.item); ? ? }); ? }, ? filters: { ? ? filterTime(val) { ? ? ? return wfl.formatData(val) ? ? }, ? }, }; </script> <style scoped> .detail { ? padding: 10px; } .title { ? font-weight: bold; ? font-size: 20px; } .logo { ? width: 30px; ? border-radius: 50%; } .center { ? padding: 5px 0; } .from { ? font-size: 14px; ? font-weight: bold; } .time { ? font-size: 12px; } .time span { ? margin-left: 2px; ? color: #f85a59; } .btn { ? font-size: 14px; ? height: 25px; ? width: 40px; ? text-align: center; ? line-height: 25px; ? padding: 2px 10px; ? color: white; ? background-color: #f85a59; ? margin-left: 10px; } </style> ?Home.vue ? <template> <div> ? ? <Header></Header> ? ? <News></News> </div> </template> <script> import Header from '../components/Header.vue' import News from '../components/News.vue' export default { name:'Home', components:{ ? ? Header, ? ? News } } </script> <style scoped> </style> wfl.js ? let formatData = (val, now = new Date) => { ? ? let time = now - new Date(val) ? ? return parseInt(time / 1000 / 60 / 60) + '小时前' } export default{ ? ? formatData } ? ? ? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:51:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |