美文网首页
vue2.0版cnode社区项目搭建及实战开发

vue2.0版cnode社区项目搭建及实战开发

作者: sandisen | 来源:发表于2017-04-19 16:25 被阅读502次
11.jpg
npm -v
12.jpg

二、安装淘宝镜像

npm是下载国外的包,大部分人网速都扛不住,所以为了快速安装我推荐使用淘宝镜像cnpm。
1.安装cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

2.使用
之后所有的npm操作,都替换成cnpm,如cnpm install
这里附上官方文档:https://npm.taobao.org/

三、搭建项目脚手架

1.全局安装vue脚手架 — vue-cli

cnpm install -g vue-cli

2.利用webpack的模板,初始化vue项目

vue init webpack basic-functions("basic-functions"为自己的项目名称)

3.在本地运行项目

cd basic-functions '(进入项目文件夹)'
cnpm install '(下载依赖包)'
npm run dev '(启动项目,一定要在有package.json的当前目录运行)'

在浏览器地址栏输入:localhost:8080,(8080为端口号,如果被占用,可在webpack.config.js中修改)可以看到以下页面


四、文件结构介绍

--- build '(webpack配置文件)'
--- config '(开发及生产环境配置)'
--- nodele_modules '(npm install 现在下来的依赖包)'
--- src ('开发目录)'
    |--- assets '(资源文件夹-js,vue,img,css等)'
    |--- router '(路由文件)'
        |--- index.js'(控制路由跳转页面)'
    |--- App.vue '(App.vue组件)'
    |--- main.js '(预编译入口)'
--- static '(静态资源文件)'
--- .babelrc '(babel配置文件)'
--- .gitignore '(git提交忽略规则')
--- index.html '(主页)'
--- package.json '(项目配置文件)'
--- README.md

五、接入less

1.安装依赖

cnpm install less-loader --save-dev
cnpm install node-less --save-dev

2.验证
新建一个less文件,在App.vue的script中引用该less文件。

<script>
    import './src/style/base.less'
</script>

六、接入zepto

1.安装依赖

cnpm install webpack-zepto --save-dev

2.webpack.dev.conf.js配置,在plugins中加入

new webpack.ProvidePlugin({
  $: "webpack-zepto",
  Zepto: "webpack-zepto",
  "window.Zepto": "webpack-zepto"
})

ps:webpack.prod.conf.js中也要配置,保证打包出来的配置正确

3.验证

(./App.vue)
export default {
     mounted:function() {
       console.log($('img').length)
     }
}

七、正式开发

1.修改文件目录结构,为如下目录结构



2.main.js入口文件

import Vue from 'vue'
import App from './App'
import router from './router'
import $ from 'webpack-zepto'
import filter from './utils/filter.js';
//注册全局组件
Vue.prototype.$filter = filter;
Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App }
})

3.router文件中index.js文件

import Vue from 'vue'
import Router from 'vue-router'

import Index from '@/page/index'
import Topic from '@/page/topic'
import PublishTopic from '@/page/publishTopic'
import Login from '@/page/login'
import User from '@/page/user'
import Message from '@/page/message'
Vue.use(Router)

export default new Router({
  routes: [
    {
       path: '/',
       redirect: {name: 'index'}
     },
    {
      path: '/',
      name: 'index',
      component: Index
    },
    {
      path: '/topic/:id',
      name: 'topic',
      component: Topic
    },
    {
      path: '/create',
      name: 'create',
      component: PublishTopic,
      meta: { requiresAuth: true }
    },
    {
      path: '/login',
      name: 'login',
      component: Login
    },
    {
      path: '/user/:loginname',
      name: 'user',
      component: User
    },
    {
      path: '/message',
      name: 'message',
      component: Message,
      meta: { requiresAuth: true }
    }
  ]
})

页面效果如下:













至此简单的项目已经完成,后续还会加入vuex(状态管理),对于目前使用的html5离线存储进行替换,并且对ajax获取数据进行封装。

相关文章

网友评论

      本文标题:vue2.0版cnode社区项目搭建及实战开发

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