1.vue-cli安装
sudo npm install -g @vue/cli
2.查看是否安装成功
vue --version
3.创建项目
vue create hello-world
4.启动项目
cd hello-world
yarn serve
yarn global add 后无法找到命令
首先,先查看一下yarn的bin目录,输入yarn global bin,如下图:
然后将该路径加入到path中,对于windows中直接将该目录加入到path中,如下图所示:
框架使用:
pc端界面 elementui/mintui
mobile界面 vux
项目使用
vue-cli , nginx,git,gitlab, jenkins
git 使用
一般来说,git 项目会分成 master、develop、feature、hotfix 这几种分支类型:
mater 为主分支,主要用于发布,代码永远处于稳定可产品化发布的状态。
develop 为开发分支,主要记录开发状态下相对稳定的版本。
feature 为功能分支,从 develop 上拉取代码,开发完成后再合并到 develop 分支上。经
常用于一个大版本 develop 拆分成几个 feature 的场景,便于多个开发人员在同一版本迭代中 开发各自不同的功能点,避免代码冲突,在开发完成后再合并到 develop 分支中进行测试。
hotfix 为紧急线上修复分支,需要从 master 上拉取分支进行 bug 修复,修复完成后分 别并入 master 和 develop 分支。
nginx配置多个站点
nginx 配置
- 在Nginx配置目录下,创建一个”vhost”目录。本例假设Nginx是默认安装,配置目录在”/etc/nginx”
$ sudo mkdir /etc/nginx/vhost
$ sudo vi /etc/nginx/vhost/vhost_siteA.conf
server { listen 80; # 监听端口 server_name www.siteA.com siteA.com; # 站点域名 root /home/user/www/blog; # 站点根目录 index index.html index.htm index.php; # 默认导航页 location / { # WordPress固定链接URL重写 if (!-e $request_filename) { rewrite (.*) /index.php; } } # PHP配置 location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
- 同siteA一样创建siteB的配置文件,两者仅有的不同是”server_name”和”root”目录
$ sudo vi /etc/nginx/vhost/vhost_siteB.conf
server { ... server_name www.siteB.com siteB.com; # 站点域名 root /home/user/www/forum; # 站点根目录 ... }
sudo vi /etc/nginx/nginx.conf
- 将虚拟目录的配置文件加入到”http {}”部分的末尾
http { ... include /etc/nginx/vhost/*.conf; }
$ sudo service nginx restart
- 现在访问www.siteA.com和www.siteB.com,你将发现浏览器会打开不同的站点
vue 中的: 等于v-bind
vue 中的@等于v-on
vue中的 :src="" 冒号说明后面是一个表达式值
<a v-bind:href="url"></a>等价于 <a :href="url"></a>
<button v-bind:disabled=""></button> 等价于<button :disabled=""></button>
<a v-on:click=""></a>等价于<a @click=""></a>
<input type="text" v-bind:model=""/> 这是一个双向绑定, 简写为 <input type="text" :model=""/>
关于verbose 这个音讯通常指输出显示更详尽开关
vuex
mutation必须执行同步
action可以执行异步( 提交一个mutation,可者请求ajax数据等)
store中的 state 存储的是全局变量,如果变化,全部组件都可以接收到。
因此,在项目开发过程中,请考虑使用组件中的method直接更新组件中的data ,不要使用 actions去修改state
vuex是什么
vuex是状态管理,相当于为所有组件都加上了一个store属性,组件中可以通过this.$store进行获取
store中 包括 state , mutation, actions
使用vuex以后store中的变化情况
组件通过mapGetter与mapState进行转换/mapMutation进行转换
actions ->转换到组件里的->methods
state ->转换到组件里的->computed 属性 (计算属性)
mutation->转换到组件里的->methods
可以这么解释 action实现一些异步的调用,而mutation实现非异步的调用
也可以全用action ,只不过action里调用了mutation
事件调用情况
action 可调用 dispatch 触发下一个 action
action 可调用 commit mutation 触发mutation,而后mutation 进行state修改
router是什么
router是路由,相当于为所有组件都加上了一个 router属性,组件中可以通过this.$router进行操作
路由有 静态路由,动态路由,编程路由,嵌套路由
路由形式 hash/history 等
vue 是什么
vue 包括 template/scriopt/style 三者可以写到一块 MVVM框架
它有 data,method,computed
vue-cli 是什么
创建vue项目模板的工具,类似于通过maven 创建java项目模板,但不具备包管理工具。
包管理功能通过npm或yarn实现
vue-cli 可以编译、启动、调试 vue项目。
目前项目中使用 vue2.0和vue-cli2.0
开发项目中可以先定义全局state ,确认哪些是需要全局state,哪些是组件中的data,
vue组件基本结构
var vm = new Vue({
name:'root',
el:"#app",
// 数据
data: { a: 1 } / Function, // data类型根实例为Object,组件中为Function
props:[]/{}, // 设置父组件传递给子组件的数据限制
computed:{}, // 计算属性
watch:{}, // 监控属性
methods:{}, // 事件操作
// 资源
directives:{}, // 内部指令
filters:{}, // 内部过滤器
components:{}, // 内部组件
// 生命周期:实例创建 => 编译挂载 => 组件更新 => 销毁
beforeCreate(){
console.log('beforeCreate ==> 实例创建')
},
created(){
// 可以操作data, 但未生成DOM(未挂载)发起异步请求,初始化组件状态数据 data
console.log('created ==> 实例创建完成,属性已绑定')
},
beforeMount(){
console.log('beforeMount ==> 模板编译/挂载之前')
},
mounted(){
// 已生成DOM到document中,可访问this.$el属性
console.log('mounted ==> 模板编译/挂载之后')
},
beforeUpdate(){
console.log('beforeUpdate ==> 组件更新之前')
},
updated(){
// 操作DOM $('#box1')
console.log('updated ==> 组件更新之后')
},
activated(){
// 操作DOM $('#box1')
console.log('activated ==> 组件被激活时(for keep-alive组件)')
},
deactivated(){
console.log('deactivated ==> 组件被移除时(for keep-alive组件)')
},
beforeDestroy(){
// 解除事件绑定,销毁非Vue组件实例等 如:this.$off('event1') select2.destory()
console.log('beforeDestroy ==> 组件销毁之前')
},
destroyed(){
console.log('destroyed ==> 组件销毁之后')
}
})
- Vue学习笔记-2
前言 本文非vue教程,仅为学习vue过程中的个人理解与笔记,有说的不正确的地方欢迎指正讨论 1.computed计算属性函数中不能使用vm变量 在计算属性的函数中,不能使用Vue构造函数返回的vm变 ...
- Vue学习笔记-1
前言 本文不是Vue.js的教程,只是一边看官网Vue的教程文档一边记录并总结学习过程中遇到的一些问题和思考的笔记. 1.vue和avalon一样,都不支持VM初始时不存在的属性 而在Angular里 ...
- Vue学习笔记-Vue基础入门
此篇文章是本人在学习Vue是做的部分笔记的一个整理,内容不是很全面,希望能对阅读文章的同学有点帮助. 什么是Vue? Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式 ...
- Vue学习笔记三:v-bind,v-on的使用
目录 v-bind:绑定属性值,内容相当于js,缩写: v-on:绑定方法,缩写@ 总结 v-bind:绑定属性值,内容相当于js,缩写: 我添加了一个input标签,如下 <input typ ...
- vue 学习笔记(二)
最近公司赶项目,一直也没时间看 vue,之前看下的都快忘得差不多了.哈哈哈,来一起回顾一下vue 学习笔记(一)后,继续向下看嘛. #表单输入绑定 基础用法 v-model 会忽略所有表单元素的 va ...
- vue 自学笔记记录
vue 自学笔记(一): 知识内容: 安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.htm ...
- vue学习笔记之:为何data是一个方法
vue学习笔记之:为何data是一个方法 在vue开发中,我们可以发现,data中的属性值是在function中return出来的.可为何data必须是一个函数呢?我们先看官方的解释: 当一个组件被定 ...
- Vue:实践学习笔记(3)——组件使用
Vue:实践学习笔记(3)——组件使用 全局注册 1.注册组件 Vue.component('my-component',{ //选项 }) 说明:my-component就是注册的组件自定义的标签名 ...
- Vue:实践学习笔记(1)——快速使用
Vue:实践学习笔记(1)——快速使用 Vue基础知识 0.引入Vue 官方地址:Vue的官方下载地址 Vue推荐博客:keepfool 在你的程序中快速引入Vue: <!-- 开发环境版本,包 ...
- Vue:实践学习笔记(5)——Vue-Cli脚手架的使用
Vue:实践学习笔记(5)——Vue-Cli脚手架的使用 快速开始 项目配置 可视化配置 vue ui 命令配置 vue init webpack vue-demo(项目名) 运行测试 进入vue-d ...
随机推荐
- python爬虫及结巴分词《攀登者》影评分析
<攀登者>影评爬取及分析 0.项目结构 其中simkai.ttf为字体文件,Windows查看系统自带的字体 C:\Windows\Fonts 一.爬取豆瓣影评数据 # -*- codin ...
- 集合综合练习<四>
package com.JiHeTotal; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io. ...
- 40 final、finally、finalize的区别
1.final 用于声明属性.方法.类.分别表示属性不可被改变,方法不可被覆盖,类不可被继承. (1)一个类不能既被声明为abstract的,又被声明为final的. (2)被声明为final的变量必 ...
- linux常用的命令一:系统工作命令
系统工作命令: 帮助命令:man -h \ man --help(tips:‘--’长格式后用完整的选项名称,‘-’短格式后用单个字母缩写) echo命令:格式:echo [字符串|$变量] date ...
- 2019春Python程序设计作业1(0319-0325)
判断题 1-1 在Python 3.x中可以使用中文作为变量名. (2分) T F Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型.(2分) T ...
- Idea中Springboot热部署无效解决方法
仅适用IDEA中,eclipse中不需要设置 一.开启idea自动make功能 1 - Enable Automake when the application is running PRESS: C ...
- 【知识】location.search获取中文时候会被编码成一串字符
[转码] 例如:case.html?id='这个是页面的标题' 当想要使用location.search获取?id='这个是页面的标题'的时候,包含的中文会被编码成一串字符串. 所以我们需要进行解码, ...
- FastDfs单机版搭建
详细的最新版fastdfs单机版搭建 前言 目前项目是tomcat单机部署的,图片.视频也是上传到tomcat目录下,关键是此项目的主要内容还就是针对图片.视频的,这让我非常担忧:文件服务器的应用是必 ...
- Python3学习笔记(八):集合
集合(set)是一种可变的无序的不重复的数据类型 要创建集合,需要将所有项(元素)放在花括号({})内,以逗号(,)分隔. >>> s = {'p','y','t','h','o', ...
- Spring 4.2.2以上版本和swagger集成方案和踩过的坑
因为公司使用的spring版本太高,在集成swagger的时候会存在一些问题,而网上的很多实例大多都是版本比较低的,为了是朋友们少才坑,我这边将集成的过程记录一下: 1. 引入spring.swagg ...