1
<Link to="/">Home</Link>

useHistory

1
2
3
4
5
let history = useHistory();
history.push(`/invoices/${newInvoice.id}`);
history.go(n) - (function) Moves the pointer in the history stack by n entries
history.goBack() - (function) Equivalent to go(-1)
history.goForward() - (function) Equivalent to go(1)

useParams

1
2
let params = useParams();
return <h1>Invoice {params.invoiceId}</h1>;

Outlet

index route

1
<Route index element={<Activity />} />

useLocation 获取路由

1
let location = useLocation();

路由权限(新版)

1
2
3
4
5
6
7
const ProtectedRoute = ({ user, children }) => {
if (!user) {
return <Navigate to="/landing" replace />;
}

return children;
};

路由权限

1
2
3
4
5
6
7
<Route exact path="/home" render={() => (
isLoggedIn() ? (
<Redirect to="/front"/>
) : (
<Home />
)
)}/>

雍也第六

子曰:“贤哉,回也!一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐。贤哉,回也!”

  我想单辟一章来锐明想象的力量以及它对我们生活的影响。但当我想了一下之后,便写下了一篇安徒生的故事。我觉得这个故事可以代替这一章,甚至会比一般泛泛地谈论这个题目能提供出想象的更明确的概念。

  在威尼斯古老而龌龊的旅馆里,根本找不到墨水。在这种地方要墨水干什么呢?用它给旅客们记那些敲竹杠的账目吗?

  不过,当汉斯·安徒生住在旅馆里的时候,在一个锡制的墨水瓶里还剩下了一点墨水。他开始用这点墨水写一篇童话。但是这篇童话眼看着一会儿比一会儿白下去,因为安徒生已经往墨水里掺了几次水。不过仍旧没能写完,于是这篇童话的欢乐的结尾就留在墨水瓶底里了。

  安徒生冷笑了一下,他决定他下一篇童话就叫做“留在干涸了的墨水瓶底里的故事”。

  他爱上了威尼斯,把它叫作“雕零的芙蓉”。

  在海上,低低的秋云飘动着。运河里的污水汨汨地流着。冷风掠过十字街头。但当太阳冲破乌云的时候,墙垣的绿霉下边便露出蔷薇色的大理石来,于是南外便呈现出城市的景色,跟昔日威尼斯大画家卡纳列托的画一样。

  不错,这座城虽然有点忧郁凄凉却仍然非常美丽。但安徒生为了要游历其他城市,已经到了和它告别的时候了。

  所以当安徒生派旅馆的茶房去买到维罗纳去的夜行驿车票的时候,并没感到特殊的惋惜。

  这个茶房和这家旅馆正好相配――懒洋洋的,总是略带醉意,并且手脚不稳,但却生就一副坦率而天真的面孔。他一次也没整理过安徒生的房间,连石板地都没扫过。

  红色天鹅绒的帘子里,时不时飞出一群金黄色的蛾子。洗脸只好用那一只破面盆,面盆上画着几个胸部丰满的洗澡的女人。油灯坏了。桌子上摆着一盏沉甸甸的银烛台,上面插着一段油烛头,权代油灯。这盏烛台大概从替善①时代起就没擦过。

  ①替善(1477―1576):意大利的伟大画家,文艺复兴时代艺术的卓越的代表人物

  从底楼小饭馆里冒出一股烤羊肉和大蒜的气味。一群年轻女人,穿着用破快带马马虎虎系着的天鹅绒胸衣,整天在那儿大笑大闹,吵得人头昏脑胀。

  女人们有时互相揪住头发动武。当安徒生偶尔从这些打在一起的女人身边走过的时候,他就停下步子,赞赏地望着她们散乱的辫子、怒得发红的脸庞和燃烧着报复光芒的眼睛。

  但是最迷人的当然是流在两颊上的象小钻石珠似的气恼的眼泪。

  女人们一看见安徒生便平息下来。这位消瘦的、风雅的、鼻子细巧的先生,叫她们感到不好意思。虽然人们都恭恭敬敬地叫他做“诗人先生”,但她们都把他当作一个外路的魔术家。在她们看来,他是一个古里古怪的诗人。他身上的热血并不澎湃。他不和着六弦琴吟唱那些使人断肠的船夫曲,也不轮流向每一个女人吐露爱情。只有一次他把插在钮扣孔上的一朵绯红的蔷薇拿下来送给一个洗盘盏的奇丑的小姑娘。这个小姑娘还是个瘸腿,走起路来好象一只鸭子。

  茶房去买车票的时候,安徒生急忙走到窗边,拉并厚重的窗幔,正好看见茶房走在运河畔,一路吹着口哨,趁便还捏了一下一个卖虾仁的红脸蛋女人的乳房,因此挨了一记响亮的耳光。

  然后这个茶房站在运河的拱桥上,聚精会神地试着把吐沫吐到半个空蛋壳里,吐了好半天。蛋壳就浮在桥桩旁边。

  他终于吐到了蛋壳里,蛋壳沉下去了。然后这个茶房走到一个戴破帽子的小孩子身边。这孩子正在钓鱼。这个茶房坐到他旁边,茫然地盯着浮子,看什么时候能钓上来一条游荡的鱼。

  “噢,天那!”安徒生绝望地叫道。“难道今天我竟因为这个胡涂虫走不成了吗!”

  安徒生用力敞开了窗子。玻璃震得这样响,连茶房都听见了声音,抬起头来。安徒生举起双手,愤怒地摇了摇拳头。

  茶房从孩子的头上抓起那顶破帽子,兴高采烈地向安徒生挥了挥,然后又往孩子的头上一戴,跳起来拐个弯就不见了。

  安徒生大笑起来。他一点儿也没生气。连这些逗乐儿的小事情都使他的旅行欲一天比一天增强起来。

  旅途上总会遇到一些意料不到的事。你永远不知道什么时候会有狡黠的女性的流盼在睫毛下一闪,什么时候在远方会露出陌生城市的塔尖,在天际会出现重载船舶的桅杆,或当你看到狂吼在阿尔卑斯诺峰上的大雷雨时,会有什么样的诗句在脑中涌现,谁的歌喉,会象旅人的铜铃般对你唱起述说合苞待放的爱情的小调。

  茶房买来了驿车票,但找头没拿出来。安徒生抓住了他的衣领,客客气气地把他拉到走廊上去。就在那里,开玩笑地拍了一下他的脖子,于是他顺着摇晃的楼梯,两级并着一级地飞跑下去,一面放开嗓子唱了起来。

  驿车走出威尼斯时,天空开始点点滴滴地落起雨来。夜已降临在这泥泞的平野上。

  车夫说一定是撒旦想出来的主意,让从威尼斯到维罗纳去的驿车在夜间出发。

  乘客们谁也没有搭腔,车夫沉默一会儿,生气地啐了一口,然后警告乘客们说,白铁灯里那段蜡头点完了再没有了。

  乘客们没理会。于是车夫开始对他的乘客们是否有健全的判断力怀疑起来,他添上一句说,维罗纳是个偏僻的地方,正派人在那里没有事情好作。

  乘客们知道这是胡说八道,但是谁也不愿去反驳他。

  乘客一共只有三个人:安徒生、一个上了年纪的阴沉沉的神父和一位披着深色斗篷的太太。安徒生忽而觉得这位太太很年轻,忽而又觉得她上了午纪,一会儿觉得她很漂亮,一会儿又觉得她很难看。这都是车灯里的烛头在作祟。它随心所欲,每次把这位太太照出来的样子都不同。

  “把蜡头吹熄好不好?”安徒生问道。“现在用不着。等到需要的时候没有可点的了。”

  “意大利人永远不会有这种想法!”神父提高声音说。

  “为什么呢?”

  “意大利人就是没有先见之明。他们总是在事情已经无可挽救的时候,才恍然大悟,大喊大叫起来。”

  “看来,”安徒生说,“大法师,您一定不属于这个浅薄轻佻的民族了。”

  “我是奥地利人,”种父怒冲冲地回答说。

  谈话中断了。安徒生吹熄了蜡烛。沉默了片刻之后,那位太太说:

  “在意大利的这一带,夜间行路最好不点灯。”

  “车轮声人家也会听见的。”神父反驳说,并且又大为不满地添上一句:“太太们旅行理应带一个亲戚,路上照应照应。”

  “照应我的人,”太太回答说,并且调皮地笑了起来,“就坐在我的身边。”

  她指的是安徒生。为此,他摘下帽子,向这位女伴致谢。

  蜡头刚一熄掉,各种声音和气味就都强烈起来,好象因为对手的消失而感到高兴似的。马蹄声、车轮在沙砾上滚动的沙沙声、弹簧的嘎吱声和雨点敲打车篷的声音,更加响得厉害了。从车窗里袭进来的潮湿的野草和沼泽的气味也更加浓重了。

  “真奇怪!”安徒生说。“我以为意大利会吸到橙树林的气息,但闻到的都是我们北国的气味。”

  “这马上就不同了,”太太说。“我们正在爬一个小丘。上面的空要暖和些。”

  几匹马步子放慢了。驿车真的在上一个不大陡的小山冈。

  但夜色井未因此而变得亮些。相反的,道路两旁都是老榆树连绵不断。在茂密的树枝下,是一片悄然的幽暗,让人勉强能听见它与树叶和雨点的低语声。

  安徒生放下了车窗。一条榆树枝伸进车里来。安徒生摘下几片树叶留作纪念。

  他跟许多想象力活跃的人一样,有着在旅途上搜集各种小东西的癖好。这些小东西有一个特点:能使他回忆起过去,重新唤起他――安徒生――在拾起随便一块镶嵌画的碎片。一片榆树叶或一块小小的驴蹄铁的那一瞬间的心情。

  “夜!”安徒生自言自语说。

  现在夜的黑暗比阳光更使人威到惬意。黑暗让他安静地思考一切。而当安徒生想得厌倦了的时候,这黑暗常常帮助他编出各种他自己作主人公的故事来。

  在这些故事中,安徒生总把自己想成是一个漂亮、年轻、生气勃勃的人。他总是毫不吝啬地把那些多情善感的批判家称之为“诗之花”的令人陶醉的字眼把自己点缀起来。

  事实上,安徒生却长得非常难看,这一点他自己也很清楚。他又瘦又长,而且怕难为情。两手两脚活象用绳子吊着的木偶的手脚一般晃晃荡荡。这种小木偶,在他的故乡,孩子们叫作“罗锅儿”。

  有这么一副尊容,本来就别指望女人们的青睐了。但每次年轻的妇女们在他身旁走过,就好象走过一根街灯柱子旁边的时候,他心里总感到有点委屈。

  安徒生打起瞌睡来了。

  他醒来时,首先看到一颗绿色的大星。它正在大地上空荧荧闪烁。看来夜已深了。

  驿车停着。外面传来一阵说话的声晋。安徒生仔细听听。是车夫和几个中途拦住驿车的女人在讲价钱。

  这几个女人的声音是那样柔媚、那样清脆,因而这场悦耳的讨价还价,极象往日歌剧中的宣叙调。

   车夫因为她们出的价钱太低,不同意把他们搭到一个看来是非常小的市镇去。女人们争先恐后地说,钱是她们三个人凑起来的,多一个子儿都没有了。

  “好啦,好啦!”安徒生对车夫说。“要那么多钱简直是蛮不讲理,我给添足就是了。您若是不再侮辱客人,不再胡说八道,我还给你加一点。”

  “好啦,美人儿,”车夫对女人们说,“上来吧。谢谢圣母,你们碰上了这么一位挥金如土的外国王子。他只怕因为你们耽误了马车赶路。你们和去年的陈通心粉一样,对他什么用也没有。”

  “噢,耶稣啊!”神父哼了一声。

  “坐到我旁边来,姑娘们,”那位太太说。“这样我们好暖和点儿。。

  姑娘们一面小声说着话,一面把东西递上来,然后爬进车子,打过招呼,羞羞答答地向安徒生道了谢,就坐下来不响了。

  立刻就闻到一股干酪和薄荷的气味。虽然很暗,安徒生仍然不大清楚地看到了姑娘们戴的廉价耳环上镶的玻璃。

  驿车开动了。沙砾又在车轮下响了起来。姑娘们开始低声私语。

  “她们想要知道,”那位太太说,安徒生猜想她准在黑暗中窃笑,“您是什么人。您真是外国王子呢?还是一位普通的游客?”

  “我是一个预言家,”安徒生不假思索地说。“我能预卜未来,能在黑暗中洞察一切。但我不是江湖术士。不过也许可以说,我是那个曾经产生过哈姆雷特的国度里的一个特别的、可怜的王子。”

  “那末在这样黑暗中,您能看见什么呢?”一个姑娘诧异地间道。

  “譬如说你们吧,”安徒生回答说,“我看你们看得那样清楚,你们的美丽简直使我心醉。”

  他说完之后,觉得脸上发了一阵冷。他每次构思他的长诗和童话时所感受到的那种心情渐渐逼近了。

  在这种心情里,微微的不安、不知从何而来的源源不绝的词汇,以及突然出现的能统驭人类心灵的诗的力量混合在一起。

  这正好象他的一篇故事里所描写的一样。一个古老的魔箱,盖子砰地一声飞起来了,里面藏着神秘的思想和沉沉欲睡的感情,还藏着所有大地的魅力――大地的一切花朵、颜色和声音、郁馥的微风、海洋的无涯、森林的喧哗、爱情的痛苦、儿童的咿呀声。

  安徒生不知道这种心情叫做什么。有的人认为这是灵感,有的人认为是逸兴遄飞,还有些人认为这是即兴创作的才能。

  “我醒过来,忽然在深夜里听见了你们的声音,”安徒生沉默了一会,然后静静地说。“可爱的姑娘们,这就足够使我认清你们,甚至象对过路相逢的姐妹一样,爱上你们了。我能清楚地看见你们。就拿您,这位生着柔软的金发的姑娘来说。您是一个爱笑的女郎,您非常喜欢一切生灵,甚至当您在菜园里干活的时候,连画眉都会落在您的眉上。”

  “哎哟,妮蔻林娜!他那是说你哪!。一个姑娘低声地说。

  “妮蔻林娜,您有一颗热情的、温柔的心,”安徒生还是那样静静地继续说。“假如您的爱人遇到了灾难,您会毫不踌躇地越过积雪的山岭,走过干燥的沙漠,到万里之外去看他,去救护他。我说得对吗?”

  “我会去的……”妮蔻林娜有点不大好意思地呐呐说。“既然您这么想。”

   “姑娘们,你们叫什么名字?”安徒生问。

  “妮蔻林娜,玛丽亚和安娜,”一个姑娘高兴地替大家回答了。

  “至于玛丽亚,我不想谈您的美丽。我意大利话说得很差。但是我还在年轻的时候,就曾经向诗神发过誓,我要到处颂扬美,不管我在哪里看见它。”

  “耶稣啊!”神父低声说。“这个人让毒蜘蛛咬了一口。有点神经病了。”

  “有些女人,赋有真正惊人的美。这些女人差不多总是性情孤僻的人。她们孤独地忍受着会焚毁她们自身的热情。这种热情好象从里面焚烧着她们的面颊。玛丽亚,您就是这样的人。这种女人的命运往往是与众不同的。或者是极其悲惨,或者是无限幸福。”

  “那末您碰见过这样的女人吗?”那位太太问。

  “就在眼前,”安徒生回答说,“我的话不仅仅是对玛丽亚说的,同时也是对您说的,夫人。”

  “我想您这样说并不是为了消磨这漫漫的长夜吧,”那位太太用颤抖的声音说。“要是这样,对这个美丽的姑娘未免太残酷了。对我也是―样,”她低声添上一句。

  “我从来还没有象现在这样严肃,夫人。”

  “那末到底怎样呢?”玛丽亚问。“我会不会幸福呢?”

  “您想向生活要的东西太多,虽然您是一个普通的农家姑娘。所以您很难幸福。不过在您一生里,您会碰见一个配得上您那期求极高的心灵的人。您的意中人当然是一个杰出的人物。说不定是一个画家,诗人,一个为意大利争取自由的战士……也说不定是一个普通的牧人或者一名水手,但是都具有伟大的灵魂。这总归是一样的。”

  “先生,”玛丽亚腼腆地说,“我看不见您,所以我才不怕羞,想问问您。如果有这么一个人,他已经占有了我的心,那我得怎么办呢?我总共只见过他几次,连他现在在哪儿我都不知道。”

  “找他去!”安徒生提高声音说。“一定要找到他,他一定会爱您的。”

  “玛丽亚!”安娜高兴地说。“不是维罗纳那个年轻画家吗……”

  “住嘴!”玛丽亚气恼地叫道。

  “维罗纳不是一座很难找到一个人的大城市。”那位太太说,“记住我的名字。我叫叶琳娜·瑰乔莉。我就住在维罗纳。每一个维罗纳人都可以指给您我住的地方。玛丽亚,您到维罗纳来吧。可以住在我家里,直到我们这位可亲的旅伴所预言的那个幸遇实现。”

  玛丽亚在黑暗中模到了叶琳娜.瑰乔莉的手,把它紧贴在自己发烫的脸颊上。

  大家都沉默着。安徒生注意到那颗绿星消失了。它已经堕到大地那边去了。就是说,已经是后半夜了。

  “喂,那末我的未来您怎么一句也没说呢?”姑娘中最爱说话的安娜问道。

  “您会有许多小宝宝,”安徒生很有把握地回答说。“他们要一个跟一个排队来喝牛奶。您每天早晨必须花很多时间给他们洗脸、梳头。您的未来的丈夫也会给您帮忙的。”

  “是不是彼得?”安娜问。“彼得那个笨家伙,我才不稀罕他呢!”

  “您一定还要花很多时间,每天把这些眼睛里露出好奇的小男孩和小女孩亲几遍。”

   “在敌皇陛下的治内听见这些异端邪说,简直是不可思议的!”神父气冲冲地说。但是谁也没理会他说的话。

  姑娘们又唧唧哝哝小声地谈着什么。谈话时时被笑声打断。最后玛丽亚说:

  “先生,现在我们想知道您是谁。我们在黑夜里可看不见人。”

  “我是一个流浪诗人,”安徒生回答说。“我是一个年轻人。生着浓密的、波状的头发,脸色黝黑。我的蓝眼睛几乎无时不在笑,因为我无忧无虑,尚未堕入情网。我唯一的工作,就是给人们制造一些微末的礼物,作一些轻浮的只要能使我那些亲近的人欢乐的事情。”

  “比方说哪些事情呢?”叶琳娜·瑰乔莉问。

  “跟您说什么好呢?去年夏天我在日德兰半岛,住在一个熟悉的林务员的家里。有一次我在林中散步,走到一块林间草地上,那里有很多菌子。当天我又到这块草地上去了一趟,在每支菌子下面放了一件礼物,有的是银纸包的糖果,有的是枣子,有的是蜡制的小花束,有的是顶针和缎带。第二天早晨,我带着林务员的小女孩子到这个树林里去。那时她七岁。她在每一支菌子下找到了这些意外的小玩意儿。只有枣子不见了。大概是给乌鸦愉去了。您要是能看见就好了,她的眼睛里闪着该是多大的喜悦啊!我跟她说,这些东西都是地下的精灵藏在这里的。”

  “您欺骗了天真的孩子!”神父愤懑地说。“这是一个大罪!”

  “不,这并不是欺骗。她会终生不忘这件事。我敢说,她的心,不会象没体验过这个奇妙的事情的人那样容易变得冷酷无情。而且,大法师,我还得向您声明一下,我不习惯听那些我不要听的教训。”

  驿车停下了。姑娘们好象着了魔似地一动不动坐着。叶琳娜·瑰乔莉低下头,一声不响。

  “喂,漂亮的妞儿们!”车夫喊道。“醒醒吧,到了!”

  姑娘们又低声说了些什么,然后站了起来。

  在黑暗中,有两只有力的,纤细的手出其不意地抱住了安徒生的脖子,两片火热的嘴唇触到了安徒生的嘴唇。

  “谢谢您!”火热的双唇悄声地说,安徒生听出来这是玛丽亚的声音。

  妮蔻林娜向他道了谢,并且悄悄地,温柔地吻了他,头发轻轻地拂得他的脸痒痒的,安娜则用力地、出声地吻了他。姑娘们跳下车去。驿车在铺平的路上向前驶去。安徒生望了望窗外。除了那微微发绿的天空中的黑黝黝的树梢外,什么也看不见。开始破晓了。

  维罗纳富丽堂皇的建筑使安徒生吃惊了。这些建筑物的庄严的外表,在互相争妍媲美。结构和谐的建筑应该促使人的精神平静。但是安徒生的灵魂却没有平静。

  黄昏时候,安徒生在瑰乔莉的古老的家宅前拉着门铃。这幢房子坐落在一条通向要塞的很窄的小街上。

  给他开门的是叶琳娜·瑰乔莉自己。一件绿天鹅绒的衣裳紧紧地裹着她窈窕的腰身。天鹅绒的反光落在她的眸子上,安徒生觉得邪双眼睛象瓦尔克(斯堪的纳维亚神话中的女神)的一样,碧绿的,美得简直无法形容。

  她把两只手都伸给了安徒生,用冷冰冰的手指紧紧地握住了他宽大的手掌,倒退着把他引到小客厅去。

  “我是这样想念您,”她坦率地说,自疚地笑了一笑。“没有您我觉得空虚。”

  安徒生的面色发白了。整天他都怀着模糊的不安想着她。他知道他会疯狂地爱上一个女人说的每一句话,落下来的每一根睫毛,她衣服上的每一粒微尘。他明白这一点。他想,假如他让这样的爱情燃烧起来,他的心是容纳不下的。这爱情会给他带来多少痛苦和喜悦,眼泪和欢笑,以至他会无力忍受它的一切变幻和意外。

  而谁知道,或许由于这种爱情,他无数华丽的童话会黯然失色,一去不返了。到那个时候,他的生命又有什么价值呢?

  总归一样,他的爱情归根到底还是埋藏在心底。这样的情况他已经有多少次了。象叶琳娜·瑰乔莉这样的女人都是任性无常的。总有这么一个可悲的日子,她会发现他多么丑陋。他自己都讨厌自己。他常常感到他背后有一种嘲笑的眼光。这时候,他的步态就呆钝了,他跌跌绊绊,恨不得钻到地缝里去。

  “只有在想象中,”他对自己肯定说,“爱情才能永世不灭,才能永远环绕着灿烂夺目的诗的光轮。看来,我幻想中的爱情比现实中所体验的要美得多。”

  所以他到叶琳娜·瑰乔莉这儿来怀着这样的坚定决心:看过她就走,日后永不再见。

  他不能把一切直截了当地向她说明。因为他们中间还没有什么关系。他们昨晚才在驿车上相遇,而且彼此什么也没有谈过。

  安徒生站在客厅门口环顾了一下。屋角上大烛台照耀着的狄安娜的大理石头像,惨然发白,好象看到自己的美貌而惊惶得面无人色似的。

  “这是谁雕成这个狄安娜使您的美貌永驻?”安徒生问。

  “喀诺华,”叶琳娜·瑰乔莉回答说,垂下了眼睛。她好象猜着了他灵魂中所发生的一切。

  “我是来告别的,”安徒生声音低沉地说,“我马上就要离开维罗纳了。”

  “我认出您是谁来了,”叶琳娜·瑰乔莉望着他的眼睛说。“您是汉斯·安徒生,著名的童话作者和诗人。不过看来,您在自己的生活中,却惧怕童话。连一段过眼烟云的爱情您都没有力量和勇气来承受。”

  “这是我的沉重的十字架,”安徒生承认说。

  “那么怎么好呢,我的可爱的流浪诗人,”她痛苦地说道,把一只手放到安徒生的肩上,“走吧!解脱自己吧!让您的眼睛永远微笑着。不要想我。不过日后如果您由于年老、贫困和疾病而感到苦痛的时候,您只要说一句话,我便会象妮蔻琳娜一样,徒步越过积雪的山岭,走过干燥的沙漠到万里之外去安慰您。”

  她倒在沙发上,双手捂住脸。大烛台上的蜡烛飞迸着火花。

  安徒生看见在叶琳娜·瑰乔莉的纤指间,渗出一颗晶莹的泪珠,落在天鹅绒的衣裳上,缓缓地滚下去了。

  他扑到她身旁,跪了下来,把脸紧贴在她邪双温暖、有力而娇嫩的脚上,她没睁开眼睛,伸出双手,紧紧地抱住他的头,俯下身去,吻了他的嘴唇。

  第二颗热泪落到了他睑上。他闻到泪水的咸味。

  “去吧!”她悄声地说。“愿诗神饶恕您的一切。”

  他站起身,拿起帽子,匆匆地走了出去。

   全维罗纳响起了晚祷的钟声。

  以后他们再也没有见过面,但是终生互相怀念着。

  也许正因为这个缘故,安徒生在临终前不久,曾经对一位年轻作家说:

  “我为我的童话,付出了一笔巨大的、甚至可以说是无法估计的代价。为了童话,我放弃了自己的幸福,并且白白放过了这种时机,那时无论想象是怎样有力和灿烂,也该让位给现实。

  “我的朋友,要善于为人们的幸福和自己的幸福去想象,而不是为了悲哀。”

  • [None for i in range(<length>)]创建空数组;或者[None]*4
  • copy.copy(<list>)分配新的内存地址
  • list(range(<length>))生成序列数组
  • 迭代器有利于节省内存

嵌套选择器

body {
  color: #333;
  .main {
      background: #eee;
      p {
          color: #666;
      }
  }
}

变量

表示值的变量

@var1: #fff;
body {
  color: @var1;
}

表示选择器的变量

@my-selector: banner;
.@{my-selector} {
  color: #fff;
}

字符串变量

@imgPath: "/path/to/bg.png";
.bg {
  background: url('@{imagePath}');
}
.bg2 {
  background: url('append/url/@{imagePath}');
}

webpack中加入less支持

webpack文档中说明
lessc的选项在webpack中都可以使用,可用的选项可以参考less文档:

rules: [{
    test: /\.less$/,
    use: [{
        loader: "style-loader" // creates style nodes from JS strings
    }, {
        loader: "css-loader" // translates CSS into CommonJS
    }, {
        loader: "less-loader" // compiles Less to CSS
          options: {
              modifyVars:{"primary-color":"#00CEC1"}
          },
    }]
}]

lessc支持的选项与webpack配置中的名字并不是完全一致的,大部分只需要简单的转换为驼峰式即可,小部分略有不同,例如例子中写的 global-val 在loader的选项中是 globalVars 多了一个 ‘s’,所有选项对应的名称,可以在参考lessc源码。
参考:https://zhuanlan.zhihu.com/p/27439821

在archlinux下,所有的程序安装都会生成一个像windows快捷方式的文件,这个目录在我的archlinux下
/usr/share/applications目录下,可以看到很多以扩展名为desktop的文件。而文件的默认打开程序就是关联在这些程序图标下。

当前每个文件格式默认关联的程序内容是放在:~/.local/share/applications/defaults.list。

linux下可以使用xdg-open file的方式来打开文件,不使用任何DE(desktop enviorment),比如gnome、kde,xfce4等。使用下面的命令查询并修改一个文件的默认打开程序:

# 查询文件类型
$ xdg-mime query filetype some.xls
application/msword; charset=binary
# 查询该文件类型的默认打开方式
$ xdg-mime query default application/msword
# 修改文件的默认打开方式
$ xdg-mime default libreoffice-writer.desktop application/msword

设置文件夹的默认打开程序也可以用这种方法:

$xdg-mime query filetype /home/
inode/directory
$xdg-mime query default inode/directory
$xdg-mime default Thunar-folder-handler.desktop inode/directory

原文链接:http://willam2004.iteye.com/blog/1299151

神秘博士Doctor Who S09 E05: the Doctor’s face

  • I’m so sick of losing.

  • You didn’t lose.You saved the town.

  • I don’t mean the war. I’ll lose any war you like. I’m sick of losing people.

  • My face.

  • Who frowned me this face?

  • Why this one?

  • Why did I choose this face?

  • Doctor, what’s wrong with your face?

  • I think I know why I chose it.

  • It’s like I’m trying to tell myself something.

  • I think I know what I’m trying to say.

  • Just someone.

  • Not the whole town.

  • Just save someone.

  • Come with me.

  • I know where I got this face,

  • and I know what it’s for.

  • OK, what’s it for?

  • To remind me.

  • To hold me to the mark.

火线The Wire: Old Cases S01 E04

Det. James ‘Jimmy’ McNulty: How long you been in the pawn shop unit?
Det. Lester Freamon: Thirteen years and four months.
Det. James ‘Jimmy’ McNulty: Thirteen years?
Det. Lester Freamon: And four months.
Det. James ‘Jimmy’ McNulty: I gotta ask you, what exactly does a police officer assigned to the pawn shop unit do?
Det. Lester Freamon: You intake reports from registered pawn shops on all items valued over $50. Then you make an index card for that item. Then you file that index card. If someone wants to find out if something stolen has been pawned, we look to see if we have an index card. If we do, we do. If we don’t, we don’t.
Det. James ‘Jimmy’ McNulty: You did that for thirteen years?
Det. Lester Freamon: And four months.
Det. James ‘Jimmy’ McNulty: Why’d you ask out of homicide?
Det. Lester Freamon: Wasn’t no “ask” about it.
Det. James ‘Jimmy’ McNulty: You got the boot?
Det. Lester Freamon: Uh-huh.
Det. James ‘Jimmy’ McNulty: What’d you do to piss ‘em off?
Det. Lester Freamon: Police work.
Det. James ‘Jimmy’ McNulty: I think I need to buy you a drink.
Det. Lester Freamon: Just one?

JavaScript的对象复制存在一些容易犯错的位置,从下面代码可以看出来:

let obj = {
  cat: 1,
  a: { b: {c: 1} }
}
const sameObj = obj;
obj.a.b.c =2;
console.log(obj === sameObj);   // ture

明明更改了初始的对象obj,这两个对象还是相等。所以这赋值操作与一般的变量赋值是有区别的。js中这种直接赋值来复制对象是将原对象在内存中的引用(c语言中的指针)复制了过去,并没有给新的对象加入新的内存空间。当这两个对象中的一个对象改变时,于是这块内存也改变了,但是这两个对象都是指向这块内存空间,于是就发生了这种情况:当一个对象改变时,这两个对象都会改变。

所以要使用新的方法来复制对象:例如 Object.keys(),Object.assign(),for(let … in Obj)等方法来复制对象。

const obj2 = Object.assign({}, obj);    
obj.cat = 2;
obj.a.b.c =2;
console.log(obj2.cat, obj.cat === obj2.cat);     // 1, false
console.log(obj2.a.b.c,  obj2.a.b.c === obj.a.b.c)    // 2, true

第一条打印的结果是我们想要的,新对象与原始对象不再有联系。但是第二条打印结果却又出现来跟直接赋值来复制对象相识的情况:改变一个对象的属性值,另一个对象也相应的改变了。这是因为上述的复制方法也都是只把第一层属性值重新用赋值的方式复制了一下,如果第一层的属性值仍然是指向对象的引用,这些方法复制的依然是指针,所以改变其中一个对象第二层以上的属性值,还是会导致两个对象同时改变。

理解之后可以思考一下下面的打印结果

obj.a = 1;
console.log(obj2.a.b.c);     // 2

使用const newObj = JSON.parse(JSON.stringify(obj))可以实现复制对象是不再复制指针,进而两个对象不再有关联。可以这样理解:对象先转换成字符串,对象的指针信息自然就不再保存下来了,从这个字符串生成的对象也就没有了指针的关联,两个对象不再有任何关联。这种方法只有在原对象是json格式时有效,因为这种复制方法也会将原对象的方法(属性为函数)丢失。

ps:这样设计的目的是为了节省内存,所以为了这几kb的内存我就还是忍了吧!

递归函数深层复制

React组件更新的四个途径

  1. 首次渲染Initial Render
  2. 调用this.setState (并不是一次setState会触发一次render,React可能会合并操作,再一次性进行render)
  3. 父组件发生更新(一般就是props发生改变,但是就算props没有改变或者父子组件之间没有数据交换也会触发render)
  4. 调用this.forceUpdate
    如图所示
    React

原作者:linjinhe

链接:http://www.jianshu.com/p/4784216b8194

0%