提早说明
注重:本身对vue脚手架的明白和熟悉,许多东西和明白都是抽象上的手段,并不专业和官方
webpack
一种项目构建东西,能够将css和js压缩成一个文件。别的,能够供应测试用服务器。运用webpack时,能够设置一些默许扩展名 和 途径别号 来在项目文件里直接运用
导入和导出
运用export
敕令能够将一个JS对象导出,其他JS文件能够运用import 对象名 from 途径
的情势导入这个对象来运用,但是在导入时,必需晓得导入导出对象的名字。假如运用export default
敕令导出对象的话,其他JS文件在导入时就无需晓得导出对象的名字,能够自定义对象名
ps:export
和import
为es6范例中的关键字,现在仅被少许JS运转平台完成,在脚手架里会被自动用babel转换成es5对应语法
组件中自定义标署名的大小写题目
在大多数浏览器剖析HTML时,不辨别标签的大小写。自定义标签中的大写字母会被自动转换为小写字母,如<First></First>
会被转换为 first 标签,因而致使与注册时供应的标署名不一致,涌现组件未准确注册的毛病。
假如运用自定义组件时,代码写在template标签里,在剖析时就会被当作JS剖析,是辨别大小写的。
组件的别的一种写法
<body>
<template id="first-c">
<!--template以下才是组件的HTML模板,依然只能有一个根标签-->
<div>这是我第一个组件</div>
</template>
<div id="app">
<first></first>
</div>
<script>
var myTemplate = {
template:"#first-c"
}
Vue.component("first",myTemplate);
var app = new Vue({
el:"#app"
});
</script>
</body>
运用脚手架建立项目
装置NodeJS
脚手架的装置及运转均依靠NodeJS,能够在敕令行键入node -v
来检察是不是装置NodeJS。
设置npm全局途径
npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"
以后将第一个途径同时设置到环境变量path
中。
设置淘宝npm镜像
npm config set registry https://registry.npm.taobao.org
装置vue-cli
在敕令行中实行npm install -g vue-cli
。
建立模板项目
//vue init 模板名 项目名
vue init webpack simple
模板名能够在 https://github.com/vuejs-temp… 检察,引荐运用webpack。
以后运用cd 项目名
进入项目根目次,运用npm install
来自动装置项目依靠。
其他常用敕令
项目根目次下实行npm run dev
能够测试运转项目,实行npm run build
能够正式编译项目到dist目次下。
目次构造
单文件组件
<template>
<!--template以下才是组件的HTML模板,依然只能有一个根标签-->
<div>
我是一个单文件组件
</div>
</template>
<script>
export default {
//无需写template,data依然以函数返回,其他属性依旧
data(){
return {
}
},
props:[],
methods:{
}
}
</script>
<!--这个scoped能够让这些款式仅在当前组件见效-->
<style scoped>
</style>
补充:在Vue脚手架中运用jquery和其他框架
在项目根目次装置jquery npm install jquery
(注重大小写,jquery和jQuery不一样)。
build目次下的webpack.base.conf.js
开首到场
const webpack = require("webpack")
module.exports的末了到场(注重JS代码花样,不要忘了写逗号)
plugins: [
new webpack.ProvidePlugin({
jQuery: "jquery",
$: "jquery"
})
]
以后,须要运用jquery的组件中导入juuery,如
<script>
import $ from 'jquery'
export default{
data(){
return {
users:null
}
},
created(){
$.get("http://127.0.0.1:3000/all_user",function(data){
this.users = data;
}.bind(this))
}
}
</script>