<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[palerock的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/palerock</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; palerock]]></copyright><item><title><![CDATA[NPM 包的开发指南]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/118302471</link><guid>https://blog.youkuaiyun.com/palerock/article/details/118302471</guid><author>palerock</author><pubDate>Mon, 28 Jun 2021 14:08:30 +0800</pubDate><description><![CDATA[NPM， 全称 Node Package Manager，用过 Javascript 做开发的朋友应该都知道这个东西，其实严格上来说，NPM 是随同 NodeJS 一起安装的包管理工具，能解决 NodeJS 代码部署上的很多问题。
无论是前端开发，还是 Node 服务器的搭建，我们都会不可避免地使用到 NPM，通过 NPM 我们可以引用第三方的库/框架到自己的项目中，并且在使用起来特别简洁，只需要一行代码，以常用的库来说:
npm install vue express

以上命令便在当前项目中很快地安装了]]></description><category></category></item><item><title><![CDATA[在 Javascript 中安全地执行动态脚本]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/117783662</link><guid>https://blog.youkuaiyun.com/palerock/article/details/117783662</guid><author>palerock</author><pubDate>Thu, 10 Jun 2021 16:11:05 +0800</pubDate><description><![CDATA[在 Javascript 中安全地执行动态脚本
动态脚本，在每种编程语言都有涉及，比如微软的 Office 里面的 VBA 脚本，比如浏览器插件的 Tampermonky，比如很多在线工具类网站的脚本在线执行，甚至在国外很火的 SaaS 以及其衍生平台中的开发者功能都是可以通过动态脚本来实现的。
而动态脚本也大体分为两种，一是在用户客户端里执行的代码，比如 Tampermonkey ，它可以让用户使用各种自定义的代码来完成特定的功能，而这些动态脚本都有一个局部性就是只在指定客户端生效。
而第二种就是运行在服]]></description><category></category></item><item><title><![CDATA[[CSS] Position 用法进阶01：匹配父级容器空间]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/112534416</link><guid>https://blog.youkuaiyun.com/palerock/article/details/112534416</guid><author>palerock</author><pubDate>Tue, 12 Jan 2021 17:39:47 +0800</pubDate><description><![CDATA[引入
在前端界面设计中，会有那么一些布局，需要占满整个父级容器，比如：


模态框（Modal）的背景



加载器（Spinner）的背景



以上两种组件中，都是将背景完全填充到父级容器，区别在于模态框通常是背景填满屏幕，通常使用 position: fixed; 用于定位，而加载器更多用于将其背景布满父级容器，通常使用 position: absolute; 定位。
通过 CSS position 属性实现填满父级容器
为了实现填充父级的需求，从正常的盒子模型的设计逻辑来讲，我们的思路大体上很简单：]]></description><category></category></item><item><title><![CDATA[模拟 Vue 中 JS 动态表达式在模版中被动态解析的实现]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/109676043</link><guid>https://blog.youkuaiyun.com/palerock/article/details/109676043</guid><author>palerock</author><pubDate>Fri, 13 Nov 2020 15:33:30 +0800</pubDate><description><![CDATA[最近在写自己的一个 web 框架 ref-lit.js，仅仅打算自己练练手，在这个框架中，其模版语法借助了 lit-html.js，而 lit-html.js 是通过 ES2015 规范中的模版字符串实现的 HTML 模版以及表达式的绑定的，虽然好用，但是考虑到兼容问题，我就想着自己去写一个解析模版的方法，将类似于 Vue 中的模版解析为模版字符串的结果。而为了能够达到学习和提升的效果，我不打算第一时间去参考 Vue 的源码，想着通过自己的知识体系能不能实现这个需求，那么，首先从最基础的 JS 表达式入手。]]></description><category></category></item><item><title><![CDATA[[Webpack 踩坑] 使用 Webpack 打包 Web 端和 Node 服务端通用的依赖库]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/109243512</link><guid>https://blog.youkuaiyun.com/palerock/article/details/109243512</guid><author>palerock</author><pubDate>Fri, 23 Oct 2020 15:31:11 +0800</pubDate><description><![CDATA[[Webpack 踩坑] 使用 Webpack 打包 Web 端和 Node 服务端通用的依赖库
引言
最近准备着手将大学时写的一个框架给规范化，想着将它部署成 NPM 上的一个 Package，但遇到了两个问题：

这个框架完全是由 ES5 语法规范搭建的，也没有考虑模块依赖什么的，它本身依赖的其它库都是纯代码复制到项目文件内容的上方，所以我们应该需要使用模块化来引用其依赖的框架，如 ES5 的 require
如果使用了 require 语法，那么意味着所有想使用该框架的项目都必须使用 NPM，该框架的]]></description><category></category></item><item><title><![CDATA[在 Vue2 Annotate 中通过 Annotate JS 生成自定义注解（面向切面编程）]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/108886097</link><guid>https://blog.youkuaiyun.com/palerock/article/details/108886097</guid><author>palerock</author><pubDate>Wed, 30 Sep 2020 15:31:04 +0800</pubDate><description><![CDATA[在 Vue2 Annotate 中通过 Annotate JS 生成自定义注解（面向切面编程）

本文基于在了解 Vue2 Annotate 框架基本用法后的进阶使用技巧
Vue2 Annotate 简介地址：https://palerock.cn/articles/001JPDEjZ87
Vue2 Annotate 文档地址：https://palerock.cn/projects/006XvyfPS9e

为了快速生成自定义注解，我们需要用到 Annotate JS 框架 提供的几个注解:

@Surr]]></description><category></category></item><item><title><![CDATA[在 Vue 中使用注解（装饰器）]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/108827892</link><guid>https://blog.youkuaiyun.com/palerock/article/details/108827892</guid><author>palerock</author><pubDate>Sun, 27 Sep 2020 14:48:18 +0800</pubDate><description><![CDATA[在 Vue 中使用注解（装饰器）
Javascript 中的注解（装饰器）
谈及注解/装饰器，使用过 Java 或 Python 的同学一定会想到一种语法：@Annotate 或 @Decorator，虽然叫法不同，但本质上都是实现同样的功能，面向切面编程，使你所写的代码变得干净清爽，将一些复杂的逻辑隐藏在注解（装饰器）中。
但是，在 Javascript 的标准语法中，并没有类似的写法，如果想要实现类似的语法，那该怎么办呢？
由于 Javascript 也是一直在进步中，语法越来越丰富，不断有新的语法提案]]></description><category></category></item><item><title><![CDATA[在 NodeJS 服务端项目中使用注解]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/108491555</link><guid>https://blog.youkuaiyun.com/palerock/article/details/108491555</guid><author>palerock</author><pubDate>Wed, 09 Sep 2020 16:36:32 +0800</pubDate><description><![CDATA[在 NodeJS 服务端项目中使用注解
NodeJS 是使用 Javascript 语言的服务端开发的解决方案。
当从 Java 通过 Spring 开发转到使用 NodeJS 开发时，总觉得代码不够优雅，虽然 NodeJS 提供了诸如 Express、koa 等非常方便的 web 服务端框架，但是由于 Javascript 没有类似与注解的语法，在开发的过程中虽然比使用 Java 开发轻便多了，但也会情不自禁得去想，要是 Javascript 也能使用注解就好了。
抱着这个目的，我在网上发现了一个 Jav]]></description><category></category></item><item><title><![CDATA[JS 中实现 Deep Clone (深克隆) 的思路]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/108225714</link><guid>https://blog.youkuaiyun.com/palerock/article/details/108225714</guid><author>palerock</author><pubDate>Tue, 25 Aug 2020 17:33:01 +0800</pubDate><description><![CDATA[什么是深克隆，为什么要深克隆
深克隆就是将某个对象完全复制一份与原对象无任何关联的相同对象，重新分配新的内存。
为什么要使用深克隆呢，在 JS 中，对数据操作时，通常会如以下所示

基本数据类型的赋值let a = 10;
let b = 20;

b = a; // 将 a 的值赋值给 b

a = 30;

console.log(a,b); // 10 30 

// 对象中的基本数据类型的赋值

let data = {
    message:'clone'        
};

let dat]]></description><category></category></item><item><title><![CDATA[使用 Docker 来迁移 CentOS 系统]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/106689380</link><guid>https://blog.youkuaiyun.com/palerock/article/details/106689380</guid><author>palerock</author><pubDate>Thu, 11 Jun 2020 15:09:56 +0800</pubDate><description><![CDATA[最近，着手将服务器从腾讯云切换到阿里云，但是，部署在腾讯云服务器上的项目内容过于繁杂，如果在阿里云手动从头部署的话，在环境搭建和项目部署中会耗费大量的时间。
在百般思筹下突然想到了 Docker，Docker 是一个容器管理的工具，详细介绍如下：Docker 官网
基于 Docker 的容器机制，即可以运行不同系统环境下的容器并且相互隔离，我有了一个想法，使用 Docker 将我在腾讯云的服务器系统整体打包，然后使用打包后的文件在阿里云生成一个 Docker 镜像，从而将我原来的系统包括部署好的项目作为一个]]></description><category></category></item><item><title><![CDATA[Lightning Component 问题汇总 - 07.12]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/81019437</link><guid>https://blog.youkuaiyun.com/palerock/article/details/81019437</guid><author>palerock</author><pubDate>Thu, 12 Jul 2018 17:40:09 +0800</pubDate><description><![CDATA[1.子组件被引用时，父组件如果以某一变量为子组件属性赋值，子组件需要根据赋值变换进而变化需要使用 name=“change” 的 handler&amp;lt;!--parent--&amp;gt;
&amp;lt;aura:component&amp;gt;
    &amp;lt;aura:attribute name=&quot;a&quot; type=&quot;String&quot;/&amp;gt;
    &amp;lt;c:child childAttr=&quot;{!v.a}&quo]]></description><category></category></item><item><title><![CDATA[Lightning Component 问题汇总 - 07.11]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/81010455</link><guid>https://blog.youkuaiyun.com/palerock/article/details/81010455</guid><author>palerock</author><pubDate>Thu, 12 Jul 2018 09:56:41 +0800</pubDate><description><![CDATA[1.向后台传数据时，当server-side-controller方法中接收的参数为sobject的列表时，在需要在前台上传列表的每个对象中设置：object['sobjectType'] = '指定的sobjet对象类型如:Project__c';2.在需要触发event的时候，每次使用component.getEvent('Event Name')获取的event只能被触发一次，否则会报错：e...]]></description><category></category></item><item><title><![CDATA[springMVC 中接收前端传递的对象、数组等数据的方式详解]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/78034118</link><guid>https://blog.youkuaiyun.com/palerock/article/details/78034118</guid><author>palerock</author><pubDate>Tue, 19 Sep 2017 20:18:47 +0800</pubDate><description><![CDATA[1.     引言
在springMVC中，controller中方法的参数是自动注入的，在使用注解的方式下，通常有：
                  @RequestParam：  取querystring当中的参数
                  @PathVariable：     取 在@RequestMapping中定义的占位符中的参数（/test/{id}）]]></description><category></category></item><item><title><![CDATA[在前后端分离的项目中，后台使用shiro框架时，怎样使用它的会话管理系统(session)，从而实现权限控制]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/73457415</link><guid>https://blog.youkuaiyun.com/palerock/article/details/73457415</guid><author>palerock</author><pubDate>Mon, 19 Jun 2017 10:17:08 +0800</pubDate><description><![CDATA[前后端分离的项目中，ajax跨域和保存用户信息是其中的重点和难点。
如果在后台使用shiro框架来进行权限控制，就需要用到cookie+session的模式来保存用户的信息。
在前一篇文章中，我具体写了怎样在ajax跨域的情况下携带cookie，使用该方法使跨域请求携带cookie便可以在前后端分离的项目中使用shrio的session（会话管理系统）。
但是由于那种方法近乎与取巧的将Access-Control-Allow-Origin由*改为"null"不是所有的前端ajax框架所公认的，我们需要一种更]]></description><category></category></item><item><title><![CDATA[在前后端分离的项目中，ajax跨域请求怎样附带cookie]]></title><link>https://blog.youkuaiyun.com/palerock/article/details/73456992</link><guid>https://blog.youkuaiyun.com/palerock/article/details/73456992</guid><author>palerock</author><pubDate>Mon, 19 Jun 2017 09:35:48 +0800</pubDate><description><![CDATA[在项目的实际开发中，我们总会遇到前后端分离的项目，在这样的项目中，跨域是第一个要解决的问题，除此之外，保存用户信息也是很重要的，然而，在后台保存用户信息通常使用的session和cookie结合的方法，而在前端的实际情况中，跨域产生的ajax是无法携带cookie信息的，这样导致了session和cookie的用户信息储存模式受到影响，该怎样去解决这样一个问题呢]]></description><category></category></item></channel></rss>