分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

从零开始系列之vue全家桶(4)带新手小白一起搭建第一个个人网站项目

发布时间:2023-09-06 01:48责任编辑:郭大石关键词:暂无标签

未经允许,严禁转载,全文由blackchaos提供。

在安装好了前面大部分需要的插件,我们开始进行第一个个人项目。结合vue+vuex+vue-cli+vue-router+webpack使用。

1.我们先写用vue-router来单页面切换路由。先进入src文件夹。在components文件夹下创建五个文件分别是Home.vue,About.vue,Contact.vue,MyHeader.vue,Myfooter.vue.

将router里的index.js打开。修改代码为:

import Vue from ‘vue‘import Router from ‘vue-router‘import Home from ‘@/components/Home‘import About from ‘@/components/About‘import Contact from ‘@/components/Contact‘Vue.use(Router)export default new Router({ ?routes: [ ???{ path: ‘/‘, name: ‘Home‘, component: Home }, ???{ path: ‘/about‘, name: ‘About‘, component: About }, ???{ path: ‘/contact‘, name: ‘Contact‘, component: Contact } ?]})

注意最后一行要多敲一个回车,满足ESLint规则。不能用tab键来规范代码,取而代之的是两个空格。

2.文件由几部分组成,其中最顶层是src下的App.vue文件。在里面添加MyHeader,Myfooter。

2.1先修改App.vue

<template> ?<div id="app"> ???<MyHeader></MyHeader> ???<transition name="fade" mode="out-in"> ???????<keep-alive> ?????????<router-view/> ???????</keep-alive> ?????</transition> ???<MyFooter></MyFooter> ?</div></template><script>import MyHeader from ‘./components/MyHeader‘import MyFooter from ‘./components/MyFooter‘export default { ?name: ‘App‘, ?components: { ???MyHeader, ???MyFooter ?}}</script><style>#app { ?font-family: ‘Avenir‘, Helvetica, Arial, sans-serif; ?-webkit-font-smoothing: antialiased; ?-moz-osx-font-smoothing: grayscale; ?text-align: center; ?color: #2c3e50; ?margin-top: 60px;}.fade-enter-active, .fade-leave-active{ ?transition: all .3s;}.fade-enter, .fade-leave-to{ ?opacity: 0;}</style>

注意最后一行要多敲一个回车,script和style全部顶格写。写script里属性:后面跟一个空格。最后加一个淡入淡出效果。

2.2然后再写MyHeader.vue

<template> ?<div id="header" class="wrap"> ???<div class="header"> ?????<h1 class="logo"> ???????<router-link to="/"> ?????????<img src="../assets/logo.png" ?width="100"> ???????</router-link> ?????</h1> ???</div> ???<div class="top-nav"> ?????<div id="navList" class="navlist-wrap"> ???????<div class="navlist clearfix"> ?????????<span class="nav-btn"> ???????????<router-link to="/">首页</router-link> ?????????</span> ?????????<span class="nav-btn"> ???????????<router-link to="/about">关于</router-link> ?????????</span> ?????????<span class="nav-btn"> ???????????<router-link to="/contact">联系方式</router-link> ?????????</span> ???????</div> ?????</div> ???</div> ?</div></template><script>export default({ ?name: ‘header‘, ?data: function () { ???return { ?????‘nav-btn‘: ‘nav-btn‘ ???} ?}})</script><style scoped>
#header{background-color: red}.header{width:1105px;margin:0 auto;height:111px;padding:4px 0 18px;position:relative;*z-index:1}.header .logo{width:300px;height:100px;margin-left: 10px}.top-nav .navlist-wrap{width:1050px;margin:0 auto;position:relative}.top-nav .navlist{position:absolute;right:130PX;top:-40PX}.top-nav .navlist .nav-btn{ ?float:left; ?margin-left:60px; ?color:#666; ?vertical-align: middle; ?text-decoration:none; ?font-size: large;}</style>

注意最后一行要多敲一个回车,router-link to就是切换路由了。

2.3最后是MyFooter.vue

<template> ?<div id="footer"> ???<span>Copyright ? <a href="#">blackchaos</a>. All rights reserved</span> ?</div></template><script>export default({ ?name: ‘footer‘})</script><style scoped>#footer{height:50px;position:fixed;bottom:0px;left: 0px;background-color: #eeeeee;width: 100%;padding-top: 10px;}</style>

注意最后一行要多敲一个回车。  

3.开始三个切换的文件和Store文件:

3.1新建store文件并新建一个store.js文件

import Vue from ‘vue‘import Vuex from ‘vuex‘Vue.use(Vuex)export default new Vuex.Store({ ?state: { count: 0 }, ?mutations: { ???add: state => state.count++, ???dec: state => state.count-- ?}})

先简单存一个数据和两个方法。最后一行敲个回车。

 

3.2在main.js文件中引入store

import Vue from ‘vue‘import App from ‘./App‘import router from ‘./router‘import store from ‘./store/store‘Vue.config.productionTip = false/* eslint-disable no-new */new Vue({ ?el: ‘#app‘, ?router, ?store, ?components: { App }, ?template: ‘<App/>‘})

最后一行敲个回车。  

3.3首先是Home.vue

<template> ?<div id="home"> ???<div class="page-header"> ?????<h2>首页</h2> ???</div> ???<div class="panel-body"> ?????<p>{{ count }}</p> ?????<p> ???????<button @click="add">+</button> ???????<button @click="dec">-</button> ?????</p> ???</div> ?</div></template><script>export default({ ?name: ‘home‘, ?data: function () { ???return { ?????localCount: 1 ???} ?}, ?methods: { ???add () { ?????this.$store.commit(‘add‘) ???}, ???dec () { ?????this.$store.commit(‘dec‘) ???} ?}, ?computed: { ???count () { ?????return this.$store.state.count ???} ?}})</script><style scoped>#home{width: 100%;margin: 0 auto;background-color: khaki;height: 400px}</style>

最后一行敲回车,方法写在methods里,this.$store.commit调用.

3.4然后是About.vue和Contact.vue

<template> ?<div id="contact"> ???<h2>联系方式</h2> ?</div></template><script>export default({ ?name:‘contact‘})</script><style scoped>#contact{width: 100%;height: 400px;background-color: lightskyblue;}</style>
<template> ?<div id="about"> ???<h2>关于</h2> ?</div></template><script>export default({ ?name:‘about‘})</script><style scoped>#about{width: 100%;height: 400px;background-color: antiquewhite;}</style>

 同样最后一行多一个回车。

 

照方抓药,给还没完成的同学一个demo

https://github.com/xuchaoyu2000/vueblog

从零开始系列之vue全家桶(4)带新手小白一起搭建第一个个人网站项目

原文地址:https://www.cnblogs.com/blackchaos/p/8723724.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved