@ys930126
2018-07-11T09:49:36.000000Z
字数 5741
阅读 153
Vue 学习
(Vuex 状态管理 、 VueRouter 路由管理 、 Vue-Cli webpack脚手架 、Vue 服务端渲染)(NPM 使用引入三方包)
模板或渲染的灵活选项语法以及项目设置的简单渲染速度更快,体积更小
更大的规模、更多的使用者、更好的可测试性Web和原生APP能提供更多支持和工具的更大的生态系统
使用虚拟DOM快速渲染轻量级响应式组件服务端渲染轻松集成的的路由、捆绑和状态管理强大的支持和社区
已经会了 HTML、CSS、JavaScript?即刻阅读指南开始构建应用!不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。20kB min+gzip 运行大小 超快虚拟 DOM 最省心的优化良好的生态系统,更多的中文支持和帮助方案
更丰富的工具
安装node js 环境
1.更新npmnpm install npm@latest -g2.更新 nodenpm cache clean -f 清除缓存npm install -g n 安装 n模块管理n lastest(ps 如果发现n模块无法使用,建议重新下载nodejs 最新版本手动安装)
npm install -g cnpm --registry=https://registry.npm.taobao.org下载 VsCode 下载地址
v-on 绑定事件 如 v-on:click="DoSth" 简写为 @v-bind 绑定属性 如 v-bind:class="{Select:isSelected}"v-text 渲染数据v-html 渲染Htmlv-if 控制显示v-showv-For 循环 类似 foreachdata 数据props 属性propsDatacomputedmethods 方法watch 监视 监视 data 里被定义的值的改变 接收 val .oldval
了解了基本原理之后,但我们好像发现一些问题
这不是我们想要的vue?
刚才我们只是给一些普通的html标签增加一些新特性而已,感觉这 个和真正的vue还是很大区别。
a.这个后缀不对啊,应该是.vue 结尾的啊
b.直接双击html就能看到网页,这是真的vue么?
所以 vue 的准备工作远远不止这些
怎么识别vue文件的?
Vue-Loader到底做了什么
神奇的Vue-Cli github 地址
使用Vue-cli 开始真正的Vue
安装Vue-cli 脚手架工具 (目前版本到 V3.0 和 V2.0很大不同,更简单,也更疑惑)
npm install -g @vue/cli
通过vue-cli 初始化一个官方的示例
vue create my-project
运行实例
进入到目录 运行
cnpm run server
踩坑
遇到错误:unable to verify the first certificate解决办法:修改npm 镜像源 (推荐使用 nrm 开源工具)遇到错误 在 create my-project 时候 选择完 default后不再继续解决办法:使用 vue create -d my-projecthttps://github.com/vuejs/vue-cli/issues/1444一道无形的墙
引入三方库
npm install vue-routernpm install vuex --savecnpm i element-ui -S完整前端框架搭建
使用 vue-element-admin 为例
自动生成的 vue-project 自定义配置文件,需要自己新建
关于自定义配置,总共需要新建3个文件,修改到1个文件
- 1.自定义配置: 在根目录新增 `[vue.config.js][17]` 文件
- 2.开发模式下配置:根目录新增 `.env.development` 文件
- 3.发布模式下配置:根目录新增 `.env.production` 文件
PS: .env.xx 模式配置文件 里面配置键值对就行了
但要注意 这里必须以VUE_APP开头
这样我们就可以自定义个全局变量在某个模式下
VUE_APP_BASE_URL = 'http://test.xx.com/api/'
使用方式:通过 process.env.VUE_APP_BASE_URL
- 4.包管理配置 根目录的 package.json 文件
Babel 可以通过 .babelrc 或 package.json 中的 babel 字段进行配置。
ESLint 可以通过 .eslintrc 或 package.json 文件中的 eslintConfig 字段进行配置。
ES6 就是 ES 2015增加 Promises
//创建promisevar promise = new Promise(function(resolve, reject) {// 进行一些异步或耗时操作if ( /*如果成功 */ ) {resolve("Stuff worked!");} else {reject(Error("It broke"));}});//绑定处理程序promise.then(function(result) {//promise成功的话会执行这里console.log(result); // "Stuff worked!"}, function(err) {//promise失败会执行这里console.log(err); // Error: "It broke"});
|
增加module
// point.jsmodule "point" {export class Point {constructor (x, y) {public x = x;public y = y;}}}// myapp.js//声明引用的模块module point from "/point.js";//这里可以看出,尽管声明了引用的模块,还是可以通过指定需要的部分进行导入import Point from "point";var origin = new Point(0, 0);console.log(origin);
同时,在进行属性值添加与获取时有专门的get,set 方法 ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型,均可使用 for of增加 Proxies 用来监听对象
//定义被侦听的目标对象var engineer = { name: 'Joe Sixpack', salary: 50 };//定义处理程序var interceptor = {set: function (receiver, property, value) {console.log(property, 'is changed to', value);receiver[property] = value;}};//创建代理以进行侦听engineer = Proxy(engineer, interceptor);//做一些改动来触发代理engineer.salary = 60;//控制台输出:salary is changed to 60
Symbols
Symbol是一种基本类型,像数字,字符串还有布尔一样,它不是一个对象。Symbol 通过调用symbol函数产生,它接收一个可选的名字参数,该函数返回的symbol是唯一的。之后就可以用这个返回值做为对象的键了。Symbol还可以用来创建私有属性,外部无法直接访问由symbol做为键的属性值。(function() {// 创建symbolvar key = Symbol("key");function MyClass(privateData) {this[key] = privateData;}MyClass.prototype = {doStuff: function() {... this[key] ...}};})();var c = new MyClass("hello")c["key"] === undefined//无法访问该属性,因为是私有的
更像对象间的继承 WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。
为什么选择Vue ?
vue 学习曲线不如其他两个框架陡峭,更快速上手
vue 的社区 中文内容比较多,而且github热度慢慢超过其他两者
为什么选择Element-UI
(我们只对比Iview 和 Element-UI)
Element-UI 是由ele 前端团队开发,稳定的开发和bug修复
Ele 已被 阿里收购,可能有一定的技术引入
Vue.js 推荐使用 Element-UI
Element-UI Github Star 27362 Issues 8444 closed 275open
IView-UI Github Star 15196 Issues 2789 closed 433 open
为什么选择 花裤衩不选择 IView-admin
Iview-admin 虽然是Iview官方版的后台管理示例 但还是背靠Iview
Ele-Admin 虽然是个人开发 但是 github 比 Iview还多
vuew-element-admin Github Star 13966 Issues 539 closed 86 open
iview-admin Github Star 6746 Issues 429 closed 201 open
在使用编辑器开发的时候,务必使用EsLint插件来检查代码规范
使用前在VSCode 中增加如下配置
{// 以下是按照ESLint格式化代码"vetur.format.defaultFormatter.js": "vscode-typescript","javascript.format.insertSpaceBeforeFunctionParenthesis": true,"editor.quickSuggestions": {"strings": true},"editor.tabSize": 2,"eslint.validate": ["javascript","javascriptreact","html","vue",{"language": "html","autoFix": true}],// "files.autoSave": "onFocusChange",// "vetur.validation.template": false,// // 防止格式化代码后单引号变双引号// "prettier.singleQuote": true,"files.autoSave": "afterDelay","files.autoSaveDelay": 1500,// "git.confirmSync": false// 配置是否从更新通道接收自动更新。更改后需要重启。"update.channel": "none","git.ignoreMissingGitWarning": true,"eslint.autoFixOnSave": true,"eslint.validate": ["javascript","javascriptreact",{"language": "html","autoFix": true},{"language": "vue","autoFix": true}]}
1.安装 git
2.本地注册git -global 你的用户名和邮箱
3.生成 SSH 命令 ssh-keygen -t rsa -C "1131392397@qq.com"
4.在你想要建立项目的地方新建一个根目录文件夹 如 ProjectFile
5.文件夹内 右键 点击 git Bash Here 打开命令窗口
6.窗口内键入 git init 初始化git
7.键入 git remote add origin git@github.com:ys930126/51jf_vue.git 获取远程版本文件
此时已经完成本地与远程服务器的版本库连接
git 常用操作
1. 添加全部更改 git add . 注意最后面有个点
2. 签入全部更改 git commit -m "这里务必填写更改的内容消息"
3. 将更改Push到云端 git push origin master 如果远端服务器被自定义名称 origin 改成你自定义的名称
4. 从远端服务器获取更改 git pull origin master
更多...
这个在学的时候没有写笔记,略过,有空以后再讲