安装
用 @vue/cli
npm install -g @vue/cli# 或yarn global add @vue/cli# 完成后检查版本vue --version# 创建一个名为hello-world的目录vue create hello-world#根据需要完成相应配置# 进入目录cd hello-world# 开启webpack-dev-serveyarn serve
区别
- vue.js 完整版
开发使用(运行时版+编译器)(编译器:将模板字符串编译成为JS渲染函数的代码)
体积大,不建议用,可以从HTML获得视图。
vue.runtime.js 非完整版
- 发布使用 通过webpack内的vue-loader,来调用pomliler,把其转成h()函数,因此体积小,加载速度快
template 和 render 使用
//main.vue<template><div id="app">{{n}}<button @click="add">+1</button></div></template>
// 非完整版使用webpack中的Vue Loader,// 它允许你以一种名为单文件组件 (SFCs)的格式撰写 Vue 组件import Demo from './main.vue'new Vue({render(h){h(Demo)}})
使用 vue-loader 和 render 函数可以使没有编译器的非完整版实现完整版的功能
vue-loader可以将模板中的 template,css,script 代码提取出来交给对应的 loader处理
Vue实例
Vue实例就如同 jQuery 实例,封装了 DOM 的所有操作,封装了 data 的所有操作。
然后就可以操作 DOM 了,就像监听事件,改变 DOM,操作 data,对 data 进行增删改查。
Vue实例没有封装 ajax,需要使用 axios 的 ajax 功能。
单文件组件
在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页面内指定一个容器元素。
这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的项目中,或者你的前端完全由 JavaScript 驱动的时候,下面这些缺点将变得非常明显:
- 全局定义 (Global definitions) 强制要求每个 component 中的命名不得重复
- 字符串模板 (String templates) 缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的
\ - 不支持 CSS (No CSS support) 意味着当 HTML 和 JavaScript 组件化时,CSS 明显被遗漏
- 没有构建步骤 (No build step) 限制只能使用 HTML 和 ES5 JavaScript,而不能使用预处理器,如 Pug (formerly Jade) 和 Babel
文件扩展名为 .vue 的 single-file components (单文件组件) 为以上所有问题提供了解决方法,并且还可以使用 webpack 或 Browserify 等构建工具。
<template><p>{{n}} World!</p></template><script>module.exports= fdata: function (){return {n:0}}</script><style scoped>p{font-size: 2em;text-align: center}</style>
SEO 不友好
因为页面内容为 js 生成,因此 curl 获取不到内容,因此需要设置 TITLE keyword description 属性,y以便 curl 获取信息,进行搜索引擎优化。
<title>网站标题</title><meta name=”Keywords” Content=”关键词1,关键词2,关键词3,关键词4″><meta name=”Description” Content=”你网页的简述”>
如何用 CodeSandbox 写 Vue 代码
CodeSandbox 可以方便快速初始化,Vue 、React 、Angular 等项目
- 首先进入 CodeSandbox 官网,点击右上角
Create Sandbox - 选择
Vue, 即可享受开始代码之旅!
- 选择 save
- 选择 File > Export to ZIP,即可导出代码到 zip 压缩文件
