[前端笔记] Vue.js学习---脚手架方式搭建vue项目

使用npm脚手架方式搭建vue项目

1.国内用户推荐使用国内优秀镜像

如何使用

有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法。以淘宝npm镜像举例:

a.临时使用

npm --registry https://registry.npm.taobao.org install express

b.持久使用

npm config set registry https://registry.npm.taobao.org

// 配置后可通过下面方式来验证是否成功

npm config get registry

// 或

npm info express

c.通过cnpm使用

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

// 使用

cnpm install express

如果不能使用npm则说明没有装nodejs

2.想使用vue脚手架需要装一个cli(Vue-cli是快速构建这个单页应用的脚手架)我们这里使用cnpm,也就是使用咱们自定义的淘宝镜像来使用。

a、检测cnpm是否成功。

Cnpm -v

b、全局安装vue-cli

Cnpm install -g vue-cli

c、装完vue-cli我们就可以去初始化我们的项目。

Vue init <template-name> <project-name>

例:vue init webpack my-project

这时我们会需要给这个项目做一些描述:Project name、Project description 、Author 、Use sass

d、我们进入自己初始化后的项目,然后启用它.

Cd my-project

Cnpm install (这个时候我们就会下载我们脚手架里面所依赖的模块)

npm run dev (启动项目)


写一个vue的demo

1.使用sublime写vue,一般不会高亮显示.做如下处理

a.打开 sublime --> Perferences -->PackageContro

b.打开 Install Package

c.输入vue找到相应插件Vue Syntax Highlight

d.下载完成,重启sublime

2.打开刚才创建的项目.找到src/app.vue文件

a.删除多余部分。留下基本框架结构。

b.写一个app.vue文件代码

<template>
  <div id="app">
    <product-list-one v-bind:products='products'></product-list-one>
    <product-list-two v-bind:products='products'></product-list-two>
  </div>

</template>

<script type="text/javascript">
import ProductListOne from './components/ProductListOne'
import ProductListTwo from './components/ProductListTwo'
  export default{
    name:'app',
    components:{
      'product-list-one':ProductListOne,
      'product-list-two':ProductListTwo,
    },
    data(){
      return {
        products:[
          {
            name:'马云',price:200
          },
          {
            name:'发达',price:2000
          },
          {
            name:'发动',price:999
          },
          {
            name:'跟董',price:2123
          }
        ]
      }
    }
  }
</script>

<style type="text/css">
</style>

c.在components下写两个app.vue中添加的dom

ProductListOne.vue

<template>
	<div id="product-list-one">
		<h2>Product List One</h2>
		<ul>
			<li v-for="product in products">
				<span class="name">{{product.name}}</span>
				<span class="price">{{product.price}}</span>
			</li>
		</ul>
	</div>
</template>
<script >
	export default{
		props:["products"],
		data(){
			return {
			}
		}
	}
</script>
<style>
</style>

ProductListTwo.vue

<template>
	<div id="product-list-Two">
		<h2>Product List Two</h2>
		<ul>
			<li v-for="product in products">
				<span class="name">{{product.name}}</span>
				<span class="price">{{product.price}}</span>
			</li>

		</ul>
	</div>

</template>

<script>
	export default{
	props:["products"],
		data(){
			return {
			}
		}
	}
</script>
<style>
</style>

问题1:

在vuejs程序启动时,会遇到一种常见问题,在终端报错:Unexpected tab character。

解决方法:

在eslint的配置文件中(.eslintrc)rules项中添加一行:"no-tabs":"off",

问题2:

编译时终端报错:Expected indentation of 2 spaces but found 1 tab

解决方法:

因为设置了eslint,如果不想有规范的js代码,可以重新初始化关掉eslint。

Use ESLint to lint your code? (Y/n) 这一步选no

问题3:

在components下的vue无法获取到app中定义的对象。

解决方法:

检查app.vue文件下,是否已经给两个导入dom上进行v-bind绑定

<product-list-one v-bind:products='products'></product-list-one>

检查components下的是否export 导出了products对象

props:["products"]

搭建vuex中央状态管理区

1.使用vuex,可以去www.npmjs.com,查看相关文档

Vuex是针对vue.js的中间状态管理区

2.安装vuex命令

cnpm install vuex --save

3.安装成功以后会在package.json中dependecies标签下会出现一个vuex:x.x.x 的版本号

4.以上操作完成以后我们就可以搭建我们的store

a.首先我们的目的是要将我们app.vue中的对象products抽离出来.

b.那么我们在src下创建一个store文件夹

c.然后在store文件下创建一个js文件

import Vue from 'vue'
import Vue from 'vuex'

Vue.use(Vuex)
exprot const store = new Vuex.store({
state:{
products:[
{
name:'马云',price:200
},
{
name:'发达',price:2000
},
{
name:'发动',price:999
},
{
name:'跟董',price:2123
}
}
});
    

d.在main.js文件下,对我们的store进行配置。

Import {store} from './store/store'

New Vue({

Store:store,

El:'#app'

})

e.因为使用vuex的store,所以在app.vue中对应的product就不需要使用v-bind

f.对应的两个dom的vue中,也就不能使用props来获取products对象。而是换作使用

computed:{
	products(){
		return this.$store.state.products
	}
}

g.同样使用v-for=“product in products”,来获取咱们对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值