前端规范化 Lint tools 推荐
说起 Lint tools,其实不如说是 Vue 的 Lint tools 推荐,在过去我对 Vue.js 的 Lint 感受的不够深刻,由于 Vue.js 是由 .vue
的后缀名组成的 template file,那样 Lint 其实是不好做的,但是万万没想到,这年头 Lint 工具超发达的,什么都有——
eslint
lint 界元老,也是最基本的一个 lint 工具,即使别的你什么都不配,相信你也至少会使用 eslint 来管理你的项目。
说起 Lint tools,其实不如说是 Vue 的 Lint tools 推荐,在过去我对 Vue.js 的 Lint 感受的不够深刻,由于 Vue.js 是由 .vue
的后缀名组成的 template file,那样 Lint 其实是不好做的,但是万万没想到,这年头 Lint 工具超发达的,什么都有——
lint 界元老,也是最基本的一个 lint 工具,即使别的你什么都不配,相信你也至少会使用 eslint 来管理你的项目。
provide / inject 是 2.2 新增的方法,可以以一个祖先组件向所有子孙后代注入依赖(一个内容)。
Vue 官方警告:
provide
和inject
主要为高阶插件/组件库提供用例。并不推荐直接用于应用程序代码中。
之前其实谈到了双向同步在 Vue 中的实现方法,尽管 Vue 在 2.x 移除了 .sync
,在 2.3.0+
又重新引入。这一次也并不能简单归纳为「重新引入」,而和 v-model
一样,改为了一种语法糖。
先来重新看下 Vue 官方对于 .sync
的定义:
<comp :foo.sync="bar"></comp>
<!-- 会被扩展为 -->
<comp :foo="bar" @update:foo="val => bar = val"></comp>
昨天整了一天的 SSR,卒,总结一些经验教训仅供参考。
这就要说到天下合久必分,分久必合的道理了——最初的时候,静态页面就是静态页面,前后端 MVC,服务端渲染出页面;之后,前后端分离,后端提供 API,由客户端渲染页面;最后,我们又回到了最初的起点,不过是前后端分离后再由后端多渲染一次。
这样做的优点当然有很多啦,比如说我们要照顾爬虫(不),照顾蜘蛛,Vue 官方文档写的几点都已经很清楚了:
Vue2.x 中父子组件中 props 的属性不能在子组件中改变其值然后传出至父组件了,但是有的时候也会存在一些麻烦,比如我们想要实现一些自定义组件,总是会有值的传入传出改变的,比如我希望做一个 popup,那么肯定需要根据父节点的状态来确定子节点。
尽管官方推荐双向数据流,但还是有一些方法避免报错,实现或 hack 双向数据流:
最简单的当然是通过状态管理来管理我们的变量,但对于数据流不复杂的父子节点交互而言,未免太过浪费,因此通常我们不会特别的去考虑它,尤其是 popup / checkbox 这种基础组件的时候。
Object 的值是其内存地址,只改变 Object 内部的值不改变地址将不会出现报错。
今天有一个需求,需要给原来的列表加自定义拖拽排序,之前做过一个原生的 demo,还发了一篇:HTML5 Drag & Drop 入门。
不过我们也没必要重复造轮子,在 Vue 下面有个 Vue.Draggable 可供我们直接使用。
I reposted an article to avoid high maintenance cost of the repo and as well, everyone can have a try, no more need to repy on cloing the repo.
First of all, the steps of how to install laravel is omitted, use laravel new blog
directly.
If you are a Chinese mainland user, you can use the composer image: http://pkg.phpcomposer.com
If there is a Warning
after new
like( Hmmm, anyway, I met the problem everytime. OTZ )
重新开一篇文章来写,这样可以免于仓库个人维护成本比较高,以及大家可以自己尝试配一下,不必依赖克隆仓库等。
首先这里省略安装Laravel的步骤,直接laravel new blog
。
如果你是中国大陆用户,可以尝试这个composer镜像:http://pkg.phpcomposer.com。
如果在new
之后发生了Warning
(嗯,反正我每次都遇到了OTZ)
这周在写的时候发现不知道怎么改变Title,因为Vue注册的作用域是body,覆盖不到head的title部分,之后查了一下,有人提议说可以把作用域注册到html
,试了之后似乎报了一个Warning,看着也不是什么靠谱的解决方案,作为一个英语渣就随便抽象的查了一下,GitHub有讨论:Accessing route VM within router hooks for updating document.title
现在应该算是比较官方的做法是:
首先加: