美文网首页
从零学习vue之简单演练——构建单页面项目

从零学习vue之简单演练——构建单页面项目

作者: 小前seant | 来源:发表于2017-04-06 17:07 被阅读244次

    上一篇文章中,主要尝试了vue的小demo,应用了一些vue的指令、属性等,且是在浏览器端直接开发的,但是在开发大程序中这些是远远不够的。那么开发大型项目时,如何使用vue呢?
    这就用到了单页面组件,如何搭建?即:通过npm安装vue-cli,这点官网上介绍的很明白了:

    $ npm install --global vue-cli
    # 创建一个基于 webpack 模板的新项目
    $ vue init webpack my-project
    # 安装依赖,走你
    $ cd my-project
    $ npm install
    $ npm run dev
    

    浏览器中即出现:


    看一下项目的组织结构:

    具体可以看官方文档,这里简要分析一下:
    build:构建配置文件,config:node的配置文件,src:网站的源码所在,static:可以放置一些静态文件资源,test:单元测试用的文件。
    也即我们所写的主要代码都放在src下。
    因此我们再分析src下的文件目录:

    assets:可用于存放一些共用的静态资源
    components:存放单页面组件
    router:路由配置
    App.vue:首页,也即根目录(可能这么说不恰当,因为如果是用router的话,整个网站是一个单页面应用)
    main.js:整个项目的打包入口。

    具体进入App.vue,
    其代码是:

    <div id="app">
        ![](./assets/logo.png)
        <router-view></router-view>
    </div>
    

    而在router里配置的

    export default new Router({
      routes: [
        {
          path: '/',
          name: 'Hello',
          component: Hello
        }
      ]
    })
    

    因此,在第一张图片的主要展示内容来自此。
    我们先不动这个router,已经迫不及待要添加组件试试了。
    components下添加little.vue,如下:


    码上:
    <template>
        <div class="little">
            <span>这里是来自little的问候!</span>
        </div>
    </template>
    <style>
        .little {
            color: #f00;
            font-weight: 700;
        }
    </style>
    

    然后再app.vue中引入组件:

    <template>
      <div id="app">
        ![](./assets/logo.png)
        <router-view></router-view>
        <little></little>
      </div>
    </template>
    <script>
    import little from './components/little/little.vue'
    export default {
      name: 'app',
      components: {
        little
      }
    }
    </script>
    

    就可得到:


    下一步,我们尝试写一个简单的导航栏,通过路由实现单页面变化导航。
    首先创建mi.vue、dong.vue、ye.vue作为导航去处,
    然后在App.vue中

    <template>
      <div id="app">
        <nav>
          <ul>
            <li>
              <router-link :to="{name: 'mi'}">MIMIMIMI</router-link>
            </li>
            <li>
              <router-link :to="{name: 'dong'}">DongDongDongDong</router-link>
            </li>
            <li>
              <router-link :to="{name: 'ye'}">YeahYeahYeahYeah</router-link>
            </li>
          </ul>
        </nav>
        <router-view></router-view>
        <little></little>
      </div>
    </template>
    

    在router里配置:

    import mi from '@/components/mi/mi'
    import ye from '@/components/ye/ye'
    import dong from '@/components/dong/dong'
    
    Vue.use(Router)
    
    export default new Router({
      routes: [
        {
          path: '/',
          name: 'Hello',
          component: Hello
        }, {
          path: '/mi',
          name: 'mi',
          component: mi
        }, {
          path: '/dong',
          name: 'dong',
          component: dong
        }, {
          path: '/ye',
          name: 'ye',
          component: ye
        }
      ]
    })
    

    这样就得到了:



    点击导航栏可以分别进入对应分页。

    相关文章

      网友评论

          本文标题:从零学习vue之简单演练——构建单页面项目

          本文链接:https://www.haomeiwen.com/subject/yfrqattx.html