vue-cli4初探、问题解决和心得
创建、调试、打包
vue create event-vue
npm run serve //这个好,官方推荐`vue serve`没用
npm run build
项目结构
- package.json 项目配置文件,含依赖配置,安装包的时候npm会自动去更新它
- app.vue 是顶级组件(可理解为首页)
- main.js 用来管理全局组件,我不喜欢用它
- vue.config.js 默认没有,但我创建了它,配置了全局变量,最终部署时需要它
- components 存在子组件,可被app引入
- assets 存放自己或手动下载的库/组件,可被引入
- public 存放完全静态的东西
添加组件
- 官方推荐用
vue add
,实测很垃圾,用它装了axios根本不能用,是适配老的cli的。因此还是用npm install
来安装包比较靠谱 - vant还是有点麻烦的,import要写两行以外,要使用van开头的标签, 还得在components里加代码,类似
Button,[Popup.name]:Popup,[Field.name]:Field
,非常不优雅
自动刷新的问题
具体表现和简单:改有些代码时,页面不自动刷新。
解决方法就是能组件化就组件化。 因为在app.vue里改组件slot里的代码是可以自动刷新的。
自己导出模块
- 要使用第三方库的话, 可以
const axios=require('axios')
也可以采用import
的方式引入 - 导出用
module.exports
或者export default
方式 - 我自己的matchajs改造非常顺利
组合式API
一切都写在setup()内,最后return出来即可被template使用
如果provide出去,可被下级组件使用
需注意的是现在需视情况结合ref()和reactive()来定义data,否则return出去的东西若后面更改了,是不会响应式改变的
思路改变之后,再回到Option API的变成风格,会非常不适应(太不自由了)
reactive的机制导致踩坑
经测试, 发现let obj=reactive(new foo())
这种方式来定义响应式对象的时候,如果foo实例化过程中含有异步回调, 那么回调时产生的数据改变, 不会触发响应式更新dom
原因非常简单, 因为响应式对象其实是一个Proxy对象。 仅当操作obj这个Proxy对象的时候才会触发响应式。 而foo实例化过程中的异步回调是对new foo()的结果进行改变, 并不符合触发条件。
vue-cli4初探、问题解决和心得的更多相关文章
- vue跨域问题解决(生产环境)
vue跨域问题解决(使用webpack打包的) 配置代理:(config下index.js文件) module.exports = { dev: { env: require('./dev.env') ...
- vue cli4.0 配置环境变量
温馨提示:本文只适用于vue-cli 3.0 及以上的版本哦~ ------------------正文开始------------------ 开发项目时,经常会需要在不同环境中切换.那么我们如何配 ...
- Vue CLI4.0版本正式发布了!一起来看看有哪些新的变化吧
Vue CLI4.0版本正式发布 这个主要的版本更新主要关注底层工具的必要版本更新.更好的默认设置和其他长期维护所需的微调. 我们希望为大多数用户提供平稳的迁移体验. Vue CLI v4提供了对Ni ...
- vue.js初探
前言 入手2016最火前端框架之一vue.js.大概从网上找了些资料看了下vue.js,从网上的资料来看只能惊叹其发展速度太快,让我意外的是其作者是华人的前提下作品这么受欢迎. 网上的博客和教程各种组 ...
- vue.js初探:计算属性和methods
在vue.js中,计算属性和methods方法的函数相同时,两者的最终执行结果都是相同的.然而不同的是,计算属性是基于它的依赖缓存.计算属性只有在它的相关依赖发生改变时才会重新取值.这就意味着只要 m ...
- vue学习初探
一.环境的搭建安装 VS Code vue开发环境的搭建 理解vue的脚手架 合适的cnpm版本
- 后端视角下的前端框架之Vue.js初探
背景 作为常年搞后端的自己来说,除了多年前学习的一点关于HTML的皮毛,对现在的前端技术栈可谓是一窍不通.但是因为最近在做的内部业务全链路监控系统,负责前端的同事做到一半去搞别的项目了,为了把项目落地 ...
- Vue SSR初探
因为之前用nuxt开发过应用程序,但是nuxt早就达到了开箱即用的目的,所以一直对vue ssr的具体实现存在好奇. 构建步骤 我们通过上图可以看到,vue ssr 也是离不开 webpack 的打包 ...
- vue 开发常见问题解决大全
vue添加favicon.ico,包含开发环境和生产环境显示. 1.把图标放在下项目的根目录.. 2.修改build文件夹下面的webpack.dev.conf.js(开发环境) 和webpack.p ...
- vue cli4.0 快速搭建项目详解
搭建项目之前,请确认好你自己已经安装过node, npm, vue cli.没安装的可以参考下面的链接安装. 如何安装node? 安装好node默认已经安装好npm了,所以不用单独安装了. 如何安装v ...
随机推荐
- 3、app自动化:使用appium定位元素的方式及元素的常用操作
前提: 没有的包,要先进行对应包的安装 如:pip install Appium-Python-Client 一.定位元素,包括属性定位和xpath定位方式 a\属性定位 属性 定位方式 示例 ...
- Linux的top命令原理简单了解
top命令描述机器的cpu.内存等状态信息. 每3s刷新一次. 是procps工具集中的一个,该工具集还包括free.ps等等 top命令的代码实现逻辑是:由内核动态生成一个伪文件系统,提供一个内核状 ...
- 调度器46—tick模式
一.tick简介 tick就是一个周期性的中断,周期通过 CONFIG_HZ 进行配置,一般常取值为100Hz.250Hz.1000Hz.Tick 每秒窃取CPU 100 到 1000 次,导致Ica ...
- C# IObservable与IObserver通知机制 观察者模式(推式模型)
using System; using System.Collections.Generic; using System.Linq; using System.Threading; using Sys ...
- docker compose设置不同容器间通信
docker compose新启动了一个容器,这个时候怎么去连接到其他容器呢,去容器里面ping发现不通.一般来说是因为和其他容器没有在一个网络环境里面.首先用命令查看一下当前存在哪些网络环境. 使用 ...
- 解决vscode中,powershell中conda activate无效--更改vscode默认的shell为anaconda shell
问题记录: windows系统里,cmd可以正常使用conda activate 命令,但是在powershell中,使用conda activate既不报错(说明路径没问题),也没激活conda环境 ...
- Double NaN
import java.math.BigDecimal; import java.math.RoundingMode; public class Test { public static void m ...
- jmeter-时间处理
${__time(,)} 1486091280955 //无格式化参数,返回当前毫秒时间,默认13位.一般用来做时间戳 ${__time(/1000,)} //为取10位的时间戳的函数表达式(时间精确 ...
- mysql 修改字符集相关操作
修改某个表字段的字符集 ALTER TABLE apply_info MODIFY member_name varchar(128) CHARACTER SET utf8mb4; 查看某个库的字符集类 ...
- 原创分享 HubbleDotNet 最新绿色版,服务端免安装,基于eaglet 最后V1.2.8.9版本开发,bug修正,支持一键生成同步表
HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件.开源协议是 Apache 2.0.HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会 ...