• 使用vue-cli搭建SPA项目


    什么是vue-cli

    Vue CLI是Vue.js官方提供的脚手架工具,它是一个基于Node.js的命令行工具,可帮助开发者快速搭建Vue项目的基础结构。Vue CLI包含了Vue.js开发所需要的各种工具,例如Webpack、Babel、ESLint等,同时还提供了一些常用的插件功能,如路由、状态管理、单元测试等,可以节省开发者的时间和精力。使用Vue CLI能够更加自由地创建和管理Vue项目,也能够更好地提高团队协作的效率

    使用Vue CLI有以下几个优点:

    1. 快速创建项目

    Vue CLI提供了一个快速创建Vue项目的脚手架,只需要输入几条命令,就能够创建一个基础的Vue项目结构,并且可以自定义一些配置。

    2. 自带webpack和babel等

    Vue CLI已经为我们配置好了webpack和babel等工具,使我们可以更加方便和快捷地进行Vue项目开发。

    3. 插件化开发

    Vue CLI通过插件的方式,可以帮助我们快速集成路由、状态管理、单元测试等各种常用功能,同时也可以自定义开发插件以适应项目需求。

    4. 管理项目依赖

    Vue CLI通过npm管理项目依赖,使我们可以更好地管理和更新项目所需要的各种依赖包。

    5. 强大的配置选项

    Vue CLI提供了强大的配置选项,使我们可以轻松地进行项目配置和管理,适应不同的项目需求和开发环境。

    如何使用vue-cli

    在我们的vue-cli使用之前我们要把我们的配置,都配置好配置的步骤,我就放在下面了

    VUE路由与nodeJS环境搭建_浊酒与说心事的博客-CSDN博客

    首先在我们的cmd中输入 npm install -g vue-cli

    完成后再次输入vue init webpack spal运行完成后,如下图他会让我们回答几个问题

     1.Project name:项目名,默认是输入时的那个名称spa1,直接回车

             2.Project description:项目描述,直接回车

             3.Author:作者,随便填或直接回车

             4.Vue build:选择题,一般选第一个

               4.1Runtime + Compiler: recommended for most users//运行加编译,官方推荐,就选它了

               4.2Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specific HTML) are ONLY allowed in .vue files

                  - render functions are required elsewhere//仅运行时,已经有推荐了就选择第一个了

             5.Install vue-router:是否需要vue-router,Y选择使用,这样生成好的项目就会有相关的路由配置文件

             6.Use ESLint to lint your code:是否用ESLint来限制你的代码错误和风格。N  新手就不用了,但实际项目中一般都会使用,这样多人开发也能达到一致的语法

             7.Set up unit tests:是否安装单元测试 N

             8.Setup e2e tests with Nightwatch?:是否安装e2e测试  N

             9.Should we run `npm install` for you after the project has been created? (recommended) (Use arrow keys)

               > Yes, use NPM                    

                 Yes, use Yarn

                 No, I will handle that myself     //选择题:选第一项“Yes, use NPM”是否使用npm install安装依赖

     

            全部选择好回车就进行了生成项目,出现如下内容表示项目创建完成

            # Project initialization finished!

            # ========================

            

            实在不会选,就回车选择“默认”或是选择“N”不安装  

     

     

     完成后一此输入

    cd spal输入完成后回车,再次输入npm run dev

     和上文一样复制htttp:。。。。。。。。进行搜索

     

     

    运行SPA项目

    HBuilderX➡右击导入➡从本地目录导入➡找到我们的创建SPA项目选择后导入

    地址如果忘记了我们可以运行我们的D:\app\Node.js(18)\node-v10.15.3-win-x64\node_global\node_modules\vue-cli  也就是我们上一章节所说的解压文件的里面

    在我们的项目下写我们的前端代码

    About.vue
    1. <template>
    2. <div>
    3. <!-- 这里是关于站长 -->
    4. <router-link to="/AboutMe">关于我</router-link>
    5. <router-link to="/AboutWebsite">关于网站</router-link>
    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>
    AboutMe.vue 
    1. <template>
    2. <div>
    3. 这里是关于网站的发展
    4. <img src="./assets/logo.png" style="width: 300px;height: 300px;"><br>
    5. </div>
    6. </template>
    7. <script>
    8. export default {
    9. name: 'AboutMe',
    10. data () {
    11. return {
    12. msg: 'Welcome to Your Vue.js App'
    13. }
    14. }
    15. }
    16. </script>
    17. <style>
    18. </style>
    AboutWebsite.vue
    1. <template>
    2. <div>
    3. 在看电影哦!!
    4. <img src="./assets/1.jpg" style="width: 300px;height: 300px;"><br>
    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>
    HelloWorld.vue
    1. <template>
    2. <div class="hello">
    3. <h1>{{ msg }}</h1>
    4. <h2>Essential Links</h2>
    5. <ul>
    6. <li>
    7. <a
    8. href="https://vuejs.org"
    9. target="_blank"
    10. >
    11. Core Docs
    12. </a>
    13. </li>
    14. <li>
    15. <a
    16. href="https://forum.vuejs.org"
    17. target="_blank"
    18. >
    19. Forum
    20. </a>
    21. </li>
    22. <li>
    23. <a
    24. href="https://chat.vuejs.org"
    25. target="_blank"
    26. >
    27. Community Chat
    28. </a>
    29. </li>
    30. <li>
    31. <a
    32. href="https://twitter.com/vuejs"
    33. target="_blank"
    34. >
    35. Twitter
    36. </a>
    37. </li>
    38. <br>
    39. <li>
    40. <a
    41. href="http://vuejs-templates.github.io/webpack/"
    42. target="_blank"
    43. >
    44. Docs for This Template
    45. </a>
    46. </li>
    47. </ul>
    48. <h2>Ecosystem</h2>
    49. <ul>
    50. <li>
    51. <a
    52. href="http://router.vuejs.org/"
    53. target="_blank"
    54. >
    55. vue-router
    56. </a>
    57. </li>
    58. <li>
    59. <a
    60. href="http://vuex.vuejs.org/"
    61. target="_blank"
    62. >
    63. vuex
    64. </a>
    65. </li>
    66. <li>
    67. <a
    68. href="http://vue-loader.vuejs.org/"
    69. target="_blank"
    70. >
    71. vue-loader
    72. </a>
    73. </li>
    74. <li>
    75. <a
    76. href="https://github.com/vuejs/awesome-vue"
    77. target="_blank"
    78. >
    79. awesome-vue
    80. </a>
    81. </li>
    82. </ul>
    83. </div>
    84. </template>
    85. <script>
    86. export default {
    87. name: 'HelloWorld',
    88. data () {
    89. return {
    90. msg: 'Welcome to Your Vue.js App'
    91. }
    92. }
    93. }
    94. </script>
    95. <!-- Add "scoped" attribute to limit CSS to this component only -->
    96. <style scoped>
    97. h1, h2 {
    98. font-weight: normal;
    99. }
    100. ul {
    101. list-style-type: none;
    102. padding: 0;
    103. }
    104. li {
    105. display: inline-block;
    106. margin: 0 10px;
    107. }
    108. a {
    109. color: #42b983;
    110. }
    111. </style>
    Home.vue
    1. <template>
    2. <div>
    3. 这里是网站首页
    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>
    App.vue
    1. <template>
    2. <div id="app">
    3. <img src="./assets/f4.jpg" style="width: 300px;height: 300px;"><br>
    4. <router-link to="/Home">首页</router-link>
    5. <router-link to="/About">关于</router-link>
    6. <router-view/>
    7. </div>
    8. </template>
    9. <script>
    10. export default {
    11. name: 'App',
    12. }
    13. </script>
    14. <style>
    15. #app {
    16. font-family: 'Avenir', Helvetica, Arial, sans-serif;
    17. -webkit-font-smoothing: antialiased;
    18. -moz-osx-font-smoothing: grayscale;
    19. text-align: center;
    20. color: #2c3e50;
    21. margin-top: 60px;
    22. }
    23. </style>
    main.js 
    1. // The Vue build version to load with the `import` command
    2. // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
    3. import Vue from 'vue'
    4. import App from './App'
    5. import router from './router'
    6. Vue.config.productionTip = false
    7. /* eslint-disable no-new */
    8. new Vue({
    9. el: '#app',
    10. router,
    11. components: { App },
    12. template: ''
    13. })

     运行结果如下:

  • 相关阅读:
    Java基于API接口爬取淘宝商品数据
    腾讯 13 年,我所总结的Code Review终极大法
    力扣记录:Hot100(5)——102-141
    【chrome扩展开发】消息通讯之onMessage消息监听
    【C++】bitset位图的简单模拟实现及常见面试题
    后台平台总结
    腾讯云轻量数据库试用初体验
    源码分析:设备活跃和心跳分析
    数据结构界的幻神(First)----链表
    深入了解线程:并发编程的核心要点和应用
  • 原文地址:https://blog.csdn.net/djssubddbj/article/details/133150030