3471224395
MItong!@#¥¥#@!
去芜存菁
3471224395
MItong!@#¥¥#@!

父组件向子组件传值
父组件
<template>
<div>
父组件: <input type="text" v-model="name">
<br>
<br>
<!-- 引入子组件 -->
<child :inputName="name"></child>
</div></template><script>
import child from './child'
export default {
components: {
child
},
data () { return {
name: ''
}
}
}</script>
子组件
<template>
<div>
子组件: <span>{{inputName}}</span>
</div></template><script>
export default { // 接受父组件的值
props: {
inputName: String,
required: true
}
}</script>
子组件向父组件传值
子组件
<template>
<div>
子组件: <span>{{childValue}}</span>
<!-- 定义一个子组件传值的方法 -->
<input type="button" value="点击触发" @click="childClick">
</div></template><script>
export default {
data () { return {
childValue: '我是子组件的数据'
}
},
methods: {
childClick () { // childByValue是在父组件on监听的方法
// 第二个参数this.childValue是需要传的值
this.$emit('childByValue', this.childValue)
}
}
}</script>
父组件
<template>
<div>
父组件: <span>{{name}}</span>
<br>
<br>
<!-- 引入子组件 定义一个on的方法监听子组件的状态-->
<child v-on:childByValue="childByValue"></child>
</div></template><script>
import child from './child'
export default {
components: {
child
},
data () { return {
name: ''
}
},
methods: {
childByValue: function (childValue) {
// childValue就是子组件传过来的值
this.name = childValue
}
}
}</script>
非父子组件进行传值
公共bus.js
//bus.jsimport Vue from 'vue' export default new Vue()
组件A
<template>
<div>
A组件: <span>{{elementValue}}</span>
<input type="button" value="点击触发" @click="elementByValue">
</div></template><script>
// 引入公共的bug,来做为中间传达的工具
import Bus from './bus.js'
export default {
data () { return {
elementValue: 4
}
},
methods: {
elementByValue: function () {
Bus.$emit('val', this.elementValue)
}
}
}</script>
组件B
<template>
<div>
B组件: <input type="button" value="点击触发" @click="getData">
<span>{{name}}</span>
</div></template><script>
import Bus from './bus.js'
export default {
data () { return {
name: 0
}
},
mounted: function () {
var vm = this
// 用$on事件来接收参数
Bus.$on('val', (data) => {
console.log(data)
vm.name = data
})
},
methods: {
getData: function () {
this.name++
}
}
}</script>
一. 项目结构目录调整
初始文件添加
.editorconfig

再使用EditorConfig for VS Code插件

添加目录
/api
/directive 自定义指令
/lib
/router
/store

/moke (npm isntall mockjs -D)
vue.config.js

基本配置修改
每个人都以为自己是英雄俄底修斯 但是却难有“绳索”自制
<div id="counter-event-example">
<p>{{ total }}</p>
<button-counter v-on:increment="incrementTotal"></button-counter>
<button-counter v-on:increment="incrementTotal"></button-counter>
</div>
<script type="text/javascript" src="./vue.js"></script>
<script>
Vue.component('button-counter', {
template: '<button v-on:click="incrementCounter">{{ counter }}</button>',
data: function () {
return {
counter: 0
}
},
methods:{
incrementCounter:function(){
this.counter+=1
this.$emit('increment')
}
}
})
new Vue({
el: "#counter-event-example",
data:{
total:0
},
methods:{
incrementTotal:function(){
this.total+=1
}
}
})
</script>









基本的urlopen()函数不支持验证、cookie或其他HTTP高级功能。
要支持这些功能,必须使用build_opener()函数来创建自己的自定义Opener对象。
install_opener(opener) 安装opener作为urlopen()使用的全局URL opener,即意味着以后调用urlopen()时都会使用安装的opener对象。opener通常是build_opener()创建的opener对象。
一些复杂情况详细解决办法:
1. cookie处理
如果要管理HTTP cookie,需要创建添加了HTTPCookieProcessor处理程序的opener对象。默认情况下。HTTPCookieProcessor使用CookieJar对象,将不同类型的CookieJar对象作为HTTPCookieProcessor的参数提供,可支持不同的cookie处理。如下面代码:
url = 'http://www.baidu.com' postdata = '' cookie_filename = 'cookie.txt' cookie =http.cookiejar.MozillaCookieJar(cookie_filename) handler = urllib.request.HTTPCookieProcessor(cookie) opener = urllib.request.build_opener(handler) request = urllib.request.Request(url, postdata, headers)
2.proxy代理
import urllib.request
proxy_handler = urllib.request.ProxyHandler({'http':'123.123.2123.123:8080'})
proxy_auth_handler = urllib.request.ProxyBasicAuthHandler()
proxy_auth_handler.add_password('realm', '123.123.2123.123', 'user', 'password')
opener = urllib.request.build_opener(urllib.request.HTTPHandler, proxy_handler)
f = opener.open('http://www.baidu.com')
a = f.read()
swoole项目已收录到PHP官方扩展库,除了手工下载编译外,还可以通过PHP官方提供的pecl命令,一键下载安装swoole很方便
pecl install swoole

然后添加swoole.so到php.ini




允许从左边或者右边推入或者弹出


list数据可以重复
lpop就是从左边pop
rpop就是从右边pop
push同理

无序存储不同元素




sort set的value必须是全局唯一
如果2条记录的score是一样的 那么就按value的字典顺序排列先后



<?php
$redis = new \Redis();
$redis->connect("127.0.0.1",8089);
//string
$redis->delete("string1");
$redis->set("string1","var1");
$val = $redis->get("string1");
var_dump($val);
$redis->set("string1", 4);
$redis->incr("string1", 2);
$val = $redis->get("string1");
var_dump($val);
?>

常用于队列(订单操作等高并发处理)
<?php
$redis = new \Redis();
$redis->connect("127.0.0.1",8089);
$redis->delete("list1");
$redis->lPush("list1","A");
$redis->lPush("list1","B");
$redis->lPush("list1","C");
$val = $redis->rPop("list1");
var_dump($val);
?>
~


<?php
$redis = new \Redis();
$redis->connect("127.0.0.1",8089);
$redis->delete('driver1');
$redis->hSet("driver1","name","leokim");
$redis->hSet("driver1","age","100");
$redis->hSet("driver1","gender","1");
$val = $redis->hMGet("driver1",array("name","age"));
var_dump($val);
?>

结算分数排行