vue脚手架(vue-cli)如何搭建项目

Love The Way You Lie 2022-05-30 09:11 380阅读 0赞

一、安装

1、安装nodejs(自带npm)

2、安装cnpm
npm install -g cnpm —registry=https://registry.npm.taobao.org
3、全局安装webpack
npm install webpack –g
4、安装vue-cli脚手架构建工具

npm install vue-cli –g

二、使用vue-cli构建项目目录

1、准备一个文件夹作为你的工作空间(以后的每个项目都在文件夹下)

  1. 如:e:\\workspace

2、使用vue脚手架构建项目

  1. 在工作空间的目录下运行 vue init webpack 项目名称,如:vue init webpack taobao
  2. ![20180308220743418][]

3、vue项目目录

70

对于每个文件夹的意思以及如何写代码后面会有解释。

4、 启动项目(服务)

  1. 在命令行(转到项目目录下,如:e:\\workspace\\taobao)执行命令: npm run dev。看到如下画面,说明成功启动,默认端口号是8080
  2. ![20180308221032602][]

5、 运行(测试安装是否成功)
在地址栏中输入http://localhost:706/\#

看到右图,说明成功了,恭喜您,亲!

  1. ![20180308221142641][]

三、开发功能(如何使用vue脚手架进行开发_商品列表和商品详情)

1、假设:

项目的页面包括三部分:top,bottom和内容

在components下增加top.vue,bottom.vue,goodslist.vue,goodsdetail.vue

在app.vue进行整体布局

在router/index.js做路由设置

  1. ![2018030822134773][]

2、代码:

1)、components下的top

  1. <template>
  2. <div class="topcss">
  3. {
  4. {msg}}
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. name: 'topname',
  10. data () {
  11. return {
  12. msg: '我是顶部'
  13. }
  14. }
  15. }
  16. </script>
  17. <style scoped>
  18. .topcss{ width:1000px; height:200px; background-color:pink; }
  19. </style>

2)、 components下的bottom

  1. <template>
  2. <div class="bottomcss">
  3. {
  4. {msg}}
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. name: 'bottomname',
  10. data () {
  11. return {
  12. msg: '我是底部'
  13. }
  14. }
  15. }
  16. </script>
  17. <style scoped>
  18. .bottomcss{ width:1000px; height:120px; background-color:orange;}
  19. </style>

3)、 components下的goodslist

  1. <template>
  2. <div class="goodslistcss">
  3. <ul>
  4. <li v-for="item in goodslist">
  5. <p @click="goGoodsdetail(item.goodsid)">商品编号:{
  6. {item.goodsid}}</p>
  7. <p>商品名称:{
  8. {item.goodsname}}</p>
  9. <p>商品价格:{
  10. {item.goodsprice}}</p>
  11. </li>
  12. </ul>
  13. </div>
  14. </template>
  15. <script>
  16. export default {
  17. name: 'goodslist',
  18. methods:{
  19. goGoodsdetail:function(goodsid){this.$store.state.id=goodsid;}
  20. },
  21. data () {
  22. return {
  23. goodslist: [
  24. {"goodsid":"01001","goodsname":"铅笔","goodsprice":12},
  25. {"goodsid":"01002","goodsname":"钢笔","goodsprice":25}
  26. ] }
  27. }
  28. }
  29. </script>
  30. <style scoped>
  31. .goodslistcss{width:1000px;height:400px;background-color:gray;}
  32. </style>

4)、components下的goodsdetail

  1. <template>
  2. <div>
  3. <p>商品编号:{
  4. {goodsdetail.goodsid}}</p>
  5. <p>商品名称:{
  6. {goodsdetail.goodsname}}</p>
  7. </div>
  8. </template>
  9. <style scoped>
  10. p{
  11. color:red;
  12. background-color:green
  13. }
  14. </style>
  15. <script>
  16. var goodslist=[
  17. {"goodsid":"01001","goodsname":"铅笔","goodsprice":12},
  18. {"goodsid":"01002","goodsname":"钢笔","goodsprice":25}
  19. ];
  20. function searchgoodsdetail(goodsid){
  21. for(let i=0;i<goodslist.length;i++){
  22. if(goodslist[i].goodsid==goodsid){ return goodslist[i]; }
  23. } return null
  24. }
  25. export default {
  26. name: 'HelloWorld',
  27. computed: {
  28. goodsdetail: function () {
  29. let goodsid = this.$store.state.id; return searchgoodsdetail(goodsid);
  30. }
  31. }
  32. }
  33. </script>

5)、app.vue

  1. <template>
  2. <div id="app">
  3. <top></top>
  4. <hr/>
  5. <router-view/>
  6. <hr/>
  7. <bottom></bottom>
  8. </div>
  9. </template>
  10. <script>
  11. import top from './components/top';
  12. import bottom from './components/bottom';
  13. export default {
  14. name: 'App',
  15. components:{
  16. top,bottom
  17. }
  18. }
  19. </script>
  20. <style>
  21. #app {
  22. font-family: 'Avenir', Helvetica, Arial, sans-serif;
  23. -webkit-font-smoothing: antialiased;
  24. -moz-osx-font-smoothing: grayscale;
  25. text-align: center;
  26. color: #2c3e50;
  27. margin-top: 60px;
  28. }
  29. </style>

6)、router/index.js

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import goodslist from '@/components/goodslist'
  4. import goodsdetail from '@/components/goodsdetail'
  5. Vue.use(Router)
  6. export default new Router({
  7. routes: [
  8. {
  9. path: '/',
  10. name: 'goodslist',
  11. component: goodslist
  12. },
  13. {
  14. path: '/goodsdetail/:goodsid',
  15. name: 'goodsdetail',
  16. component: goodsdetail
  17. }
  18. ]
  19. })

7)、 main.js

  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import store from './store/store'
  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. store,
  12. components: { App },
  13. template: '<App/>'
  14. })

8)、使用vuex进行兄弟组件之间的传值:

  1. 在此示例中goodslist组件需要给goodsdetail组件中传入goodsid src中创建store文件夹,在store文件夹下创建store.js,如下代码:
  2. import Vue from 'vue'
  3. import Vuex from 'vuex'
  4. Vue.use(Vuex)
  5. export default new Vuex.Store({
  6. state:{
  7. id: ' '
  8. },
  9. mulations:{
  10. setId(state , id) {
  11. state.id = id
  12. }
  13. }
  14. })

9)、使用vuex进行兄弟组件之间的传值:
在main.js中增加
import Vuex from ‘vuex’
import store from ‘./store/store’
vue实例中增加store属性
在goodslist.vue中增加
methods:{
goGoodsdetail:function(goodsid){
this.$store.state.id=goodsid; //把goodsid保存到id中
this.$router.push({ path: ‘/goodsdetail’,name:”goodsdetail”,params: { goodsid:goodsid}});
}
},
在goodsdetail.vue中增加
computed: {
goodsdetail: function () {
return searchgoodsdetail(this.$store.state.id); //获取id
}

}

10)、运行npm run dev。在浏览器中输入:http://localhost:706

发表评论

表情:
评论列表 (有 0 条评论,380人围观)

还没有评论,来说两句吧...

相关阅读

    相关 vue脚手架

    vue2:脚手架搭建 简介 vue.js有著名的全家桶系列,包含了vue-router,vuex, vue-resource,再加上构建工具vue-cli,就是...

    相关 第一个Vue脚手架项目

    ①安装node运行环境 我这里node环境是已经安装完毕了,具体安装的步骤就不演示了,需要注意的是版本 不能太低,否则版本过低会出现问题。 ![在这里插入图片描述]

    相关 Vue脚手架

    一、安装vue-cli 安装vue-cli的前提是你已经安装了npm,安装npm你可以直接下载node的安装包进行安装。你可以在命令行工具里输入npm -v 检测你是否安