• 使用vue-cli搭建SPA项目


    目录

    一、vue-cli构建SPA项目及SPA项目结构介绍

    利用vue-cli构建SPA

    spa的访问过程:

    安装vue-cli

    二、SPA完成路由的开发

    步骤:

    三、嵌套路由

    children:[ ]


    一、vue-cli构建SPA项目及SPA项目结构介绍

    利用vue-cli构建SPA

            安装vue-cli命令-npm install (-g、-s、-d)

            -g:js依赖会下载到node_global中

            -s:会被打包(安装到dependencies里面)

            -d:只会在开发环境中被依赖

    spa的访问过程:

            (1)访问index.html

            (2)index.html通过main.js中的vue实例管理#app边界,同时指定App.vue模板

            (3)App.vue中包含了图片以及锚点,而锚点与组件的对应关系存在router/index.js中,所以就指向了一个组件

            (4)最终App.vue中就显示了logo图片以及helloworld.vue的内容

       vue-cli是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,创建命令如下:           

       vue init webpack xxx                    

       注1:xxx 为自己创建项目的名称

       注2:必须先安装vue,vue-cli,webpack,node等一些必要的环境

    安装vue-cli

    npm install -g vue-cli

    npm install webpack -g

     

     

     

     

     更改端口号8080——>8083:

    二、SPA完成路由的开发

    步骤:

    1、引入路由js依赖:main.js中已经完成

    2、定义组件:呈现形式是以.vue文件展示

            template标签中定义组件内容

            通过export default指定组件的名字

    3、定义路由与组件之间的对应关系

            router/index.js文件中进行定义

    4、获取路由对象:main.js中已经完成

    5、挂载Vue实例:main.js中已经完成

    6、定义锚点:App.vue 使用 router-view

    7、触发事件:App.vue 使用 router-link to

    Home.vue:

    1. <template>
    2. <div>
    3. 这是首页内容,展示最新的10篇博客
    4. div>
    5. template>
    6. <script>
    7. export default {
    8. name: 'Home',
    9. data () {
    10. return {
    11. msg: 'Welcome to Your Vue.js App'
    12. }
    13. }
    14. }
    15. script>
    16. <style>
    17. style>

    About.vue:

    1. <template>
    2. <div>
    3. 这是关于本站显示的内容区域,本站的发展史...
    4. div>
    5. template>
    6. <script>
    7. export default {
    8. name: 'About',
    9. data () {
    10. return {
    11. msg: 'Welcome to Your Vue.js App'
    12. }
    13. }
    14. }
    15. script>
    16. <style>
    17. style>

     index.js:

    1. import Vue from 'vue'
    2. import Router from 'vue-router'
    3. import HelloWorld from '@/components/HelloWorld'
    4. import Home from '@/components/Home'
    5. import About from '@/components/About'
    6. Vue.use(Router)
    7. export default new Router({
    8. routes: [
    9. {
    10. path: '/',
    11. name: 'Home',
    12. component: Home
    13. },
    14. {
    15. path: '/Home',
    16. name: 'Home',
    17. component: Home
    18. },
    19. {
    20. path: '/About',
    21. name: 'About',
    22. component: About
    23. },
    24. ]
    25. })

    App.vue:

    1. <template>
    2. <div id="app">
    3. <router-link to="/Home">首页router-link>
    4. <router-link to="/About">关于router-link>
    5. <router-view/>
    6. div>
    7. template>
    8. <script>
    9. export default {
    10. name: 'App'
    11. }
    12. script>
    13. <style>
    14. #app {
    15. font-family: 'Avenir', Helvetica, Arial, sans-serif;
    16. -webkit-font-smoothing: antialiased;
    17. -moz-osx-font-smoothing: grayscale;
    18. text-align: center;
    19. color: #2c3e50;
    20. margin-top: 60px;
    21. }
    22. style>

    运行:

    三、嵌套路由

    children:[ ]

    AboutMe.vue:

    1. <template>
    2. <div>
    3. 站长 杨总 拥有阿里云公司N年项目经验,带领数百位成员完成了YYY重大项目研发
    4. div>
    5. template>
    6. <script>
    7. export default {
    8. name: 'AboutMe',
    9. data () {
    10. return {
    11. msg: 'Welcome to Your Vue.js App'
    12. }
    13. }
    14. }
    15. script>
    16. <style>
    17. style>

    AboutWebSite.vue:

    1. <template>
    2. <div>
    3. 网站的迭代日志:2020.09.05更新了一个版本,2021.10.06更新了第二版本;
    4. 由于其他原因,网站将不再更新,敬请谅解......
    5. div>
    6. template>
    7. <script>
    8. export default {
    9. name: 'AboutWebSite',
    10. data () {
    11. return {
    12. msg: 'Welcome to Your Vue.js App'
    13. }
    14. }
    15. }
    16. script>
    17. <style>
    18. style>

    index.js:

    1. import Vue from 'vue'
    2. import Router from 'vue-router'
    3. import HelloWorld from '@/components/HelloWorld'
    4. import Home from '@/components/Home'
    5. import About from '@/components/About'
    6. import AboutMe from '@/components/AboutMe'
    7. import AboutWebSite from '@/components/AboutWebSite'
    8. Vue.use(Router)
    9. export default new Router({
    10. routes: [
    11. {
    12. path: '/',
    13. name: 'Home',
    14. component: Home
    15. },
    16. {
    17. path: '/Home',
    18. name: 'Home',
    19. component: Home
    20. },
    21. {
    22. path: '/About',
    23. name: 'About',
    24. component: About,
    25. children:[
    26. {
    27. path: '/AboutMe',
    28. name: 'AboutMe',
    29. component: AboutMe
    30. },
    31. {
    32. path: '/AboutWebSite',
    33. name: 'AboutWebSite',
    34. component: AboutWebSite
    35. }
    36. ]
    37. },
    38. ]
    39. })

     

     About.vue:

    1. <template>
    2. <div>
    3. <router-link to="/AboutMe">关于站长router-link>
    4. <router-link to="/AboutWebSite">关于本站router-link>
    5. <router-view>router-view>
    6. div>
    7. template>
    8. <script>
    9. export default {
    10. name: 'About',
    11. data () {
    12. return {
    13. msg: 'Welcome to Your Vue.js App'
    14. }
    15. }
    16. }
    17. script>
    18. <style>
    19. style>

    运行:

     

     

     

     今日分享结束啦~再见!

  • 相关阅读:
    C++ 实现HTTP的客户端、服务端demo和HTTP三方库介绍
    GO抽象工厂模式
    [2023毕业设计源码]精品基于Python实现的微信小程序校园导航系统-微信小程序[包运行成功]
    看完才发现饼图插入图片so easy!
    【Python】python入门(一):JupyterLab安装、使用
    什么是 Web 3.0 及其重要性
    SpringBoot启动顺序
    蔚来、小鹏、吉利走到了跨界分叉口
    什么是强缓存、协商缓存?
    java毕业设计在线宠物用品交易网站Mybatis+系统+数据库+调试部署
  • 原文地址:https://blog.csdn.net/weixin_65808248/article/details/126732679