【npm 查看全局安装过的包】
npm list -g --depth 0

【cnpm】
官网:http://npm.taobao.org/
npm install -g cnpm --registry=https://registry.npm.taobao.org

【创建脚手架】
npm install -g @vue/cli

【创建项目】
vue create my-project 选择自定义的那个 (会根据网络速度自动寻找下载快的方式)
自定义勾选:默认勾中的Babel、Linter/Formatter之外,再勾上Router,Vuex
ESLint with error prevention only
Lint on save
In package.json

【命令】
yarn serve   热重载
yarn build

【ajax请求】
yarn add axios
使用axios,代码配置看这里https://www.npmjs.com/package/axios

【路由】
创建项目时选择自定义,路由基本代码会自动创建完成

【引入图片】
<img src="../assets/logo.png" alt="">
跟之前的方法一样,如果是动态的话,要像下面那样判断
<img v-if="item.avatar" :src="item.avatar" class="tx" alt="" >
<img v-if="!item.avatar" src="../assets/tx.png" class="tx" alt="">
因为<img :src="item.avatar?item.avatar:'../assets/tx.png'" class="tx" alt="">这样写,默认图片显示不出来
=====================创建项目可能遇到的问题
这步执行成功需要安装yarn (npm install -g yarn)或cnpm,个人喜欢用yarn
这步如果提示operation not permitted, mkdir 'd:\vue\vue1',则右击vue文件夹,点击管理员取得所有权

=====================yarn
yarn add axios
yarn remove axios

=====================axios关键配置
【xxx.vue get的使用方法】
const axios = require("axios");
axios.get('/api/case/case_list').then(function(res) {
   t.list=res.data.data.case_list
});

【xxx.vue post的使用方法】
const axios = require("axios");
import qs from 'qs';
var data=qs.stringify({id:2});
axios.post('/api/case/case_detail',data).then(function(res) {
});
post的话,传的参数必须经过qs处理下,否则后台是收不到参数的

【跨域问题】
解决办法:在项目根目录下创建vue.config.js,写下面的代码
module.exports = {
  devServer: {
    host: "localhost",
    port: 8888, // 端口号
    https: false, // 是否支持https
    open: false, //配置自动启动浏览器
 
    // 配置多个代理  
    proxy: {
      "/api": {
        target: "http://www.ijiasheji.com/index.php/api/",// 要访问的接口域名
        ws: true,// 是否启用websockets
        changeOrigin: true, //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
        pathRewrite: {
            '^/api': '' //这里理解成用'/api'代替target里面的地址,比如我要调用'http://www.ijiasheji.com/index.php/api/case/caselist',直接写'/api/case/caselist'即可
        }
      }
    }
  }
}

代理那块的理解:
要访问http://www.ijiasheji.com/index.php/api/case/caselist这个接口
首先target要设置为http://www.ijiasheji.com/index.php/api/
另外pathRewrite要写成 '^/api': ''
这样以后axios.post的时候直接写/api/case/caselist就可以了
=====================其他常用代码
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'

=====================vuex公共state数据
xxx.vue
import { mapState } from 'vuex';
computed:{
  ...mapState(['ajaxtit','imgtit'])
},
之后axios里面可以直接使用this.ajaxtit和this.imgtit

登录成功后的状态也是存到这里

mutations: {
  setusertoken(state,payload){
    state.usertoken=payload.usertoken;
    state.username=payload.username;
  }
},
this.$store.commit('setusertoken',{usertoken:res.data.data.token,username:res.data.data.user_name})

=====================公共js
参考网址:https://blog.csdn.net/liuliu3636/article/details/88069392

【基本实现】
在src下创建common.js
function a(){alert('a')}
function b(){alert('b')}
export default {
  a,
  b
}

main.js
import common from './common'
Vue.prototype.common=common

xxx.vue
this.common.a()

【checkcode函数】
function checkcode(t,res,successfun,failfun){
  //前3个参数必传 第一个参数是传vue实例,保证可以完成路由跳转
  if(res.data.code==1 || res.data.code==0){
    successfun();
  }else if(res.data.code==-1){
    if(failfun){
      failfun();
    }else{
      alert(res.data.msg)
    }
  }else if(res.data.code==20003){
    t.$router.push({ name: 'login', params: {}})
  }
}
export default {
  checkcode
}

=====================vue-router常用代码
【带参数的路由】
{
  path: '/homedet/:id',
  name: 'homedet',
  component: () => import('./views/Homedet.vue')
}
{
  path:'/',
  redirect:'/home'
}
<router-link :to="'/homedet/'+item.id"></router-link>
this.$route.params.id;

【选中状态的样式】
.router-link-active{border-bottom-color:rgb(164,138,108)}

案例列表home 案例详情homedet 都要选中 案例这个nav
home是使用router-link-active实现的,但是homedet只能自己手动附上class了
mounted(){
  var fullpath=this.$route.fullPath;
  if(fullpath.indexOf('homedet')!=-1){
    document.getElementById('casenav').className='router-link-active';
  }
}
注意:document.getElementById('casenav')这个要在mounted里面使用,created里面是null

【exact的使用】
<router-link to="/" exact>案例</router-link>
防止/about 也算匹配上 /,因此加上exact
<router-link to="/about">About</router-link>

【js跳转页面】
this.$router.push({ name: 'login', params: {}})
this.$router.replace({ name: 'login', params: {}})
this.$router.go(-1)

=====================写console.log报错
参考:https://www.cnblogs.com/yshyee/p/10874870.html

error: Unexpected console statement (no-console) at
这个错误是Vuejs - 使用ESLint检查代码质量时进行提示的,修改成以下方式解决:
window.console.log(res);

=====================打包成功后,放入php环境中
【放入php环境】
打包成功后,把dist里面的内容拷贝到网站文件夹中,比如是vuecli
下载phpstudy,http://phpstudy.php.cn/wenda/397.html按照这个创建好网站,填写内容如下
域名:www.vuecli.com
端口:http 80
根目录:d:/phpstudy_pro/www/vuecli
勾中同步hosts,由于本地没有数据库,所以没有勾选创建数据库
其他的走默认即可,点击确认后,通过 www.vuecli.com 就可以访问打包好的项目了

上面的css和js路径是 / ,也就是说如果vue.config.js里面不设置publicPath的话,默认值就是/
但是网站不一定在php里面就是根路径啊,比如:
如果你的应用被部署在 http://www.my-app.com/my-app/,则设置 publicPath 为 /my-app/

【刷新404问题】
有个问题,http://www.vuecli.com/home比如这个网址,目前是正常访问的。
但是刷新后,页面显示如下
Not Found
The requested URL /home was not found on this server.

https://segmentfault.com/a/1190000010191670?utm_source=tag-newest 提到了需要php去调
php调整指南网址如下
https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%AD%90
(vue官网的HTML5 History模式 后端配置例子)

=====================网站的favicon.ico
直接更换public文件夹下的favicon.ico即可

=====================pc ui框架 Element
官网:https://element.eleme.cn/#/zh-CN  
安装:yarn add element-ui

常用功能:
layout 字体font-family代码 button 
radio checkbox input框(see密码框 带icon输入框 输入长度限制)计数器 select 级联选择器 时间选择器 日期选择器 日期时间选择器
分页 各种弹框提示 走马灯 无限滚动

【radio和checkbox样式调整】
/*radio自定义样式*/
.myradio .el-radio__inner{width: 22px;height: 22px;}
.myradio .el-radio__input.is-checked .el-radio__inner{background:#fff;border-color:#46c5ab;}
.myradio .el-radio__inner::after{width: 14px;height: 14px;}
.myradio .el-radio__input.is-checked .el-radio__inner::after{background:#46c5ab;}
.myradio .el-radio__input.is-checked+.el-radio__label{color:inherit;}

/*checkbox自定义样式*/
.mycheckbox .el-checkbox__inner{width: 22px;height: 22px;}
.mycheckbox .el-checkbox__input.is-checked .el-checkbox__inner,.mycheckbox .el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color: #46c5ab;border-color: #46c5ab;}
.mycheckbox .el-checkbox__inner::after{width: 5px;height: 12px;left: 7px;}
.mycheckbox .el-checkbox__input.is-checked+.el-checkbox__label{color:inherit;}

<el-radio v-model="radio" label="1" class="myradio">男</el-radio>
<el-checkbox label="a" class="mycheckbox"></el-checkbox>

vue-cli3笔记相关推荐

  1. 八、Vue cli3详解学习笔记

    一.认识Vue CLI3 1.1 vue-cli 3 与 2 版本有很大区别: vue-cli 3 是基于 webpack 4 打造,vue-cli 2 还是 webapck 3 vue-cli 3 ...

  2. Vue学习笔记(3)(Vue CLI)

    Vue2.x学习笔记.原视频教程:最全最新Vue.Vuejs教程,从入门到精通_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili Vue CLI 0. 什么是vue-cli 如果你在开发大型项目, ...

  3. 菜鸟Vue学习笔记(三)

    菜鸟Vue学习笔记(三) 本周使用了Vue来操作表单,接下来说下Vue中双向绑定表单元素的用法. Vue中双向绑定是使用的v-model,所谓的双向绑定即改变变量的值,表单元素的值也会改变,同样的,改 ...

  4. Vue CLI3.0 中使用jQuery 和 Bootstrap

    Vue 中使用 jQuery 和 Bootstrap 不是特别符合 Vue 原生的写法,但是有时候又要用,所以放上我的引入设置,供大家参考. 在 Vue CLI2.0 中引入 jQuery 和 Boo ...

  5. Vue学习笔记进阶篇——Render函数

    本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编 ...

  6. Vue学习笔记入门篇——数据及DOM

    本文为转载,原文:Vue学习笔记入门篇--数据及DOM 数据 data 类型 Object | Function 详细 Vue 实例的数据对象.Vue 将会递归将 data 的属性转换为 getter ...

  7. vue cli3 绑定域名_使用CLI设置WildFly绑定地址并关闭

    vue cli3 绑定域名 仅使用命令行参数将WildFly绑定到主机名/ IP上非常容易. 我有一个简单的GNU / Linux盒子,可以用它玩各种东西,其中之一就是WildFly. 我使用以下命令 ...

  8. vue/cli3 配置vux

    安装各插件 试过 安装"必须安装"的部分亦可 1.安装vuex npm install vuex --save-dev 2.在项目里面安装vux[必须安装] npm install ...

  9. vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值?

    vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值? 文章目录 vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值? 什么是组件? 为什么要使用组件? 如何使用 ...

  10. vue学习笔记-02-前端的发展历史浅谈mmvm设计理念

    vue学习笔记-02-前端的发展历史浅谈mmvm设计理念 文章目录 1. MVVM模式的实现者 2.第一个vue程序 3.什么是mvvm? 4.为什么要用mvvm? 5.mvvm的组成部分 7.MVV ...

最新文章

  1. python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表、生成浮点数列表(指定是否包含末尾值)
  2. arm开发板放张图片动起来_ARM裸机不能正确显示图片的问题
  3. 洛谷4951 地震 bzoj1816扑克牌 洛谷3199最小圈 / 01分数规划
  4. thinkphp漏洞_【组件攻击链】ThinkCMF 高危漏洞分析与利用
  5. Solana 交易执行机制
  6. Linux 配置mail发送邮件
  7. android编程入门
  8. ESD与EOS的区别
  9. esc中文是什么意思_车上esc键是什么意思
  10. dns服务器 性能测试,dns服务器性能测试报告.docx
  11. 程序员:写作能收获什么?
  12. android一键 iphone,流畅吃鸡最全教程来了:安卓iPhone一键解锁最高画质
  13. 初涉网络,自己对服务器的一些基础理解
  14. 学习LSM(Linux security module)之一:解读yama
  15. python关键词共现图谱_如何用知网导出的关键词 几秒 生成共现矩阵及图谱 》完整版...
  16. KVM虚拟化配置详解
  17. 转:量子密钥分发和BB84协议
  18. python爬取股票网站的历史周价格
  19. Python判断股票是交易日,爬虫抓取深交所交易日历
  20. Elasticsearch+X-pack和Java Transport方式连接

热门文章

  1. Oracle里的优化器
  2. 重磅发布,时隔两月——复旦大学MOSS最新0.0.3版本发布
  3. OpenGL ES EGL TLS(线程局部存储) G3D
  4. 弹性盒子文字省略号(ellipsis)设置
  5. 【设计模式】评价代码的几个维度
  6. 积分排行榜设计 mysql_UI设计灵感之:积分榜、排行榜列表样式设计
  7. 深入浅出理解卷积运算
  8. 微信灰度测试这个新功能,你有这个功能吗?
  9. 云计算P2V的迁移过程
  10. 一个女孩的IT创业经历连载(一)