• 新手vue构建单页面应用实例


     本人写的小程序,功能还在完善中,欢迎扫一扫提出宝贵意见!

                  

    步骤:

    1.使用vue-cli创建项目
    2.使用vue-router实现单页路由
    3.用vuex管理我们的数据流
    4.使用vue-resource请求我们的node服务端
    5.使用.vue文件进行组件化的开发

    一、目录结构:

    二、搭建项目

    需先安装淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org

    Mac安装 vue-cli: sudo npm install -g vue-cli

    Windows 安装 vue-cli:npm install -g vue-cli

    构建初始化项目:vue init webpack project(创建webpack项目并下载依赖)

    输入命令进入项目: cd project  

    安装依赖: npm install

    npm i

    开始运行: npm run dev (或输入http://localhost:8080),在热加载中运行我们的应用

    它会去找到package.jsonscripts对象,执行node bulid/dev-server.js

    在这文件里,配置了Webpack,会让它去编译项目文件,并且运行服务器。

    这些都准备好后,我们需要为我们的路由、XHR请求、数据管理下载三个库,我们可以从vue的官网中找到他们。另外我们使用bootstrap作为我的UI库:

     npm i vue-resource vue-router vuex bootstrap --save

    三、项目开始

    初始化项目(main.js)

    查看我们的应用文件,我们可以在src目录下找到App.vue和main.js文件中,我们引入Vue和App,且创建了一个vue的实例(因为在router这行引入了App组件router.start(App,'#app'))

    import Vue from 'vue'
    import App from './App'
    import router from './router'
    
    import VueResource from 'vue-resource'
    Vue.use(VueResource)
    Vue.config.productionTip = false
    
    new Vue({
      el: '#app',
      router,
      template: '<App/>',
      components: { App }
    })

    index.html

    <body>
        <div id="app"></div>
      </body>

    App.vue

    <template>
      <div id="app">
        <div class="row">
          <div class="col-xs-offset-2 col-xs-8">
            <div class="page-header">
              <h2>Router Basic - 01</h2>
            </div>
          </div>
        </div>
        <div class="row">
            <div class="col-xs-2 col-xs-offset-2">
              <ul class="list-group">
                <!--使用指令v-link进行导航-->
                <a class="list-group-item"><router-link to="/home">Home</router-link></a>
                <a class="list-group-item"><router-link to="/about">About</router-link></a>
                <a class="list-group-item"><router-link to="/contact">Contact</router-link></a>
              </ul>
            </div>
            <div class="col-xs-6">
              <div class="panel">
                <div class="panel-body">
                  <!--用于渲染匹配的组件-->
                  <router-view></router-view>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: 'app'
    }
    </script>

     //   src/components/Home.vue 作为我们的首页

    <template id="contact">
      <div>
        <h1>Home</h1>
        <p>This is the tutorial about Contact.</p>
      </div>
    </template>
    
    <script>
    export default {
      '/hello': 'Hello'
    }
    </script>

    //   src/components/About.vue

    <template id="about">
        <div>
            <h1>About</h1>
            <p>This is the tutorial about vue-router.</p>
        </div>
    </template>
    <script>
    export default {
      '/about': 'About'
    }
    </script>

    //   src/components/Contact.vue

    <template id="contact">
        <div>
            <h1>Contact</h1>
            <p>This is the tutorial about Contact.</p>
        </div>
    </template>
    
    export default {
      '/contact': 'contact'
    }
    </script>

    //   src/index.js

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

    查看项目

    详细操作:

    1. 克隆项目:git clone https://github.com/cinderellastory415/vue-demo/tree/master/spa
    2. 安装依赖:npm install  
    3. 运行项目:npm run dev 或者  npm start

    输入以上命令,即可查看效果! 

  • 相关阅读:
    57. Insert Interval
    287. Find the Duplicate Number
    52. N-Queens II
    51. N-Queens
    151. Reverse Words in a String
    29. Divide Two Integers
    [POJ2104]K-th Number
    [JSOI2008]最大数
    [BZOJ3673&3674]可持久化并查集&加强版
    C++ STL rope介绍----可持久化平衡树
  • 原文地址:https://www.cnblogs.com/CinderellaStory/p/6875516.html
Copyright © 2020-2023  润新知