JavaScript设计模式之策略模式

策略模式:定义了一系列家族算法,并对每一种算法单独封装起来,让算法之间可以相互替换,独立于使用算法的客户。通俗的讲就是根据不同的参数可以定义不同的策略。

策略模式是JavaScript中比较经典的模式之一, 可以减少大量的if语句,可复用程度高

如下面的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//清除字符空格
const trim = {
'A': function (str, type) {
return str.replace(/\s+/g, "");
},
'B': function (str, type) {
return str.replace(/(^\s*)|(\s*$)/g, "");
},
'C': function (str, type) {
return str.replace(/(^\s*)/g, "");
},
'D': function (str, type) {
return str.replace(/(\s*$)/g, "");
}
}

HTML的两类标签:行标签和块标签

行标签:包含a、span、em、strong、img、var;

a 标签:主要用来链接一个其他的网页;

span 标签:主要用来对行内的文字进行一些样式以及其他的操作;

em 标签:一般用来对文字进行强调,使用斜体体现出来;

strong 标签:一般用来对文字进行强调,使用加粗字体体现出来;

img 标签:图片引用标签,其中 src属性中写入图片的地址;

var 标签:JavaScript中命名变量的标签。

  

对于vuex的使用

vuex是什么?

官网的解释

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools,extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

vuex 在项目中的使用【通过vue-cli 脚手架搭建的项目中】

安装

1
npm install vuex --save

梳理css中display的写法

从大的分类来讲, display的写法可以分为 6个大类,再加上 1个全局类,一共是 7大类:

  • 外部值
  • 内部值
  • 列表值
  • 属性值
  • 显示值
  • 混合值
  • 全局值

外部值

所谓外部值,就是说这些值只会直接影响一个元素的外部表现,而不影响元素里面的儿子级孙子级元素的表现。

display: block;

我们最熟悉的

缺省就是这个值,最基本的块级元素,属于 css入门初学者都知道的概念,只要是容器类型的元素基本都是这个值。

  
 css

微信小程序 navigator跳转url参数传递

使用方法说明

传值:在navigator的属性url后拼接?id(参数名字)=要传递的值 (如果多个参数用&分开 &name=value&…….)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<view class="good-nav">
<navigator class="good-nav-item" url="/pages/index/good/good?type=1">
<image src="http://www.leheavengame.com/wxImages/good-nav01.png"></image>
护肤系列
</navigator>
<navigator class="good-nav-item" url="/pages/index/good/good?type=2">
<image src="http://www.leheavengame.com/wxImages/good-nav02.png"></image>
面膜系列
</navigator>
<navigator class="good-nav-item" url="/pages/index/good/good?type=3">
<image src="http://www.leheavengame.com/wxImages/good-nav03.png"></image>
彩妆系列
</navigator>
<navigator class="good-nav-item" url="/pages/index/good/good?type=4">
<image src="http://www.leheavengame.com/wxImages/good-nav04.png"></image>
小样旅行装</navigator>
<navigator class="good-nav-item" url="/pages/index/good/good?type=5">
<image src="http://www.leheavengame.com/wxImages/good-nav05.png"></image>
赠品专区</navigator>
</view>

vue-cli开发中,ajax跨域请求方法

使用vue-cli构建的项目,在开发时,想要访问后台接口获取数据,这时就会出现跨域问题。

在config/index.js中进行如下配置

【即在进行ajax请求时,地址中任何以/api开头的请求地址都被解析为目标地址,target就是你想要的后台接口地址】

1
2
3
4
5
6
7
8
9
  proxyTable: {
'/api': {
target: 'http://www.leheavengame.com',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}

react父子组件通信

子组件调用父组件:

1)在父组件设置对应的属性和方法;
2)将父组件的属性,方法设置在子组件的标签属性上;
3)子组件中利用this.props来调用父组件的成员;

example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//父组件:
var parent=React.cleateClass({
getDefaultProps:function(){
alert("父组件方法")
},
render:function(){
return <children a="233" getDefaultProps={this.getDefaultProps}></children>
}
})
//子组件:
var children=react.createClass({
render:fucntion(){
return <div>
<p>从父组件取得的值:{this.props.a}</p>
<button onClick={this.props.getDefaultProps}>子组件按钮</button>
</div>
}
})

对于Webpack的简单理解

关于webpack:

webpack大而全,和静态资源相关的所有它都能干涉,当然,还能启动server;webpack主要以loaders和plugins处理各种静态资源;

loaders:

在React里会用到JSX、ES6、js,我统一将文件后缀使用.js,便于babel的配置:

npm install –save babel-loader

1
2
3
4
5
6
7
8
{
test: /\.js?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}
CSS、scss、iconfront字体文件:

npm install –save style-loader css-loader sass-loader url-loader file-loader

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
test:/\.css$/,
loader: ExtractTextPlugin.extract("style-loader", "css-loader")
},{
test: /\.scss$/,
loader: ExtractTextPlugin.extract("style-loader", "css!sass")
},{
test: /\.(woff|woff2)/,
loader: "url?limit=10000&minetype=application/font-woff&name=./[name].[ext]"
},{
test: /\.(ttf|eot|svg)/,
loader: "file?name=./[name].[ext]"
},{
test: /\.otf/,
loader: "file?name=./[name].[ext]&minetype=application/font-otf"
}

对于Webpack的简单理解

背景

说到构建工具,我往往会在前面加「自动化」三个字,因为构建工具就是用来让我们不再做机械重复的事情,解放我们的双手的。

什么是前端自动化?前端工程师需要维护的代码极为庞大和复杂,代码维护、打包、发布等流程也变得极为繁琐,同时浪费的时间和精力也越来越多,当然人为的错误也随着流程的增加而增加了更多的出错率。

致使每一个团队都希望有一种工具,能帮助整个团队在开发中能精简流程、提高效率、减少错误率。随之讨论自动化部署也越来越多,并且国内很多大型团队也都有自己成熟的自动化部署工具。

常用的构建工具 gulp,webpack,parcel,rollup,vite ,fis,grunt等

经过多年的发展,Webpack 已经成为构建工具中的首选,这是因为:

  • 大多数团队在开发新项目时会采用紧跟时代的技术,这些技术几乎都会采用“模块化+新语言+新框架”,Webpack可以为这些新项目提供一站式的解决方案;
  • Webpack有良好的生态和维护团队,能提供良好的开发体验并保证质量;
  • Webpack 被全世界大量的Web开发者使用和验证,能找到各个层面所需要的教程和经验分享。

:D 一言句子获取中...