React 组件使用

组件使用

    • 基本介绍
    • 组件创建
      • 类组件
      • 函数组件
    • 组件传值
      • 类组件
      • 函数组件
    • 组件关系
      • 组件的组合
      • 组件的嵌套

基本介绍

组件允许我们将UI拆分为独立可复用的代码片段,并对每个片段就行独立构思。
从概念上类似于 JavaScript 函数,他接受任意传入的参数(props),并返回用于描述页面展示内容的React元素(JSX)

  • 相关约定
组件的后缀可以是 .js 也可以是 .jsx,为了方便区分组件与项目的业务代码:
建议组件用 .jsx,业务代码后缀用 .js。
  • 在react 中,组件的形式有2种:
- 类组件(面向对象)
	1. 有状态(又称之为有状态组件)
	2. 有生命周期
	3. 其实就是一个构造器,每次使用组件都相当于在实例化组件
- 函数组件(面向过程)
	1. 无状态(又称之为无状态组件)
	2. 无生命周期
	3. 直接调用
  • 受控组件与非受控组件

React组件的数据渲染是否被调用者传递的props完全控制,控制则为受控组件,否则非受控组件。

组件创建

在 react17 之后,允许在项目不用 “import React from “react”; ”,但是在之前的版本是不行的。建议写,肯定不会错。

类组件

  • 注意点:
1. 使用ES6语法的class创建组件
2. class的名字必须首字母大写
3. class需要继承Component类(来自React)
4. class组件必须要有 redner() 方法, 用于页面结构渲染, redner() 方法必须使用return返回值,返回值要符合JSX语法
5. class最终需要被导出(export default
  • 第一种写法:
import React from "react";
// 创建class类,继承React.Component,在里面提供render方法,在return里面返回内容
class App extends React.Component {
     
    render() {
     
        return <div>这是一个类组件</div>;
    }
}
export default App;
  • 第二种写法:
// 引入react和Component
import React,{
     Component} from "react";

// 类组件
class App extends Component {
     
    render() {
     
        return <div>这是一个类组件</div>;
    }
}

// 导出
export default App;
  • 在16以前的版本还支持这样创建组件, 但现在的项目基本上不用
React.createClass({
     
  render () {
     
    return (
      <div>{
     this.props.xxx}</div>
  	)
  }
})

函数组件

  • 注意点:
1. 函数组件的主体是一个函数,支持function形式和箭头函数等
2. 函数名称必须首字母大写
3. 函数组件必须使用return返回值,返回值要符号JSX语法
4. 函数组件必须要导出函数元素(export default
import React from "react"
// 函数名首字母必须大写
const FunCmp = () => {
     
    return <div>这是一个函数组件</div>;
};

// 导出
export default FunCmp;

组件传值

在使用一个组件的时候,可以把参数放在标签的属性当中,所有的属性都会作为 组件 props 对象的键值。通过箭头函数创建的组件,需要通过函数的参数来接收 props

  • 组件间传值,在 Reac t中时通过只读属性 props 来完成数据传递的
  • props:接收任意的传参,并返回用于描述页面展示内容的 React 元素

类组件

  • 注意点:
1. 必须具备父子关系
2. 通过props进行传递
3. 支持写死数据""和可变数据{
     }传递
4. 不要接收props形参,直接用“this.props”即可
5. 在父子关系中,类组件和函数组件可以混用,使用的方式根据当前组件决定
  • 子组件ClassCmpErZi.jsx
import React, {
      Component } from "react";

class ClassCmpErZi extends Component {
     
    render() {
     
        return (
            <div>
                山重水复疑无路,{
     this.props.next}{
     this.props.name}
            </div>
        );
    }
}

export default ClassCmpErZi;
  • 父组件ClassCmpBaBa.jsx
import React, {
      Component } from "react";
// 导入erzi组件
import ErZi from "./ClassCmpErZi";
class ClassCmpBaBa extends Component {
     
    // 声明可变数据
    next = "柳暗花明又一村";
    render() {
     
        return (
            <div>
                {
     /* 使用儿子组件 */}
                <ErZi next={
     this.next} name="陆游"></ErZi>
            </div>
        );
    }
}

export default ClassCmpBaBa;

函数组件

  • 注意点:
1. 必须具备父子关系
2. 通过props进行传递
3. 支持写死数据""和可变数据{
     }传递
4. 传递过去后,子组件就有props属性了,数据都在props属性对象中
5. 要使用props,必须要通过函数形参接收props,否则props没定义
  • 子组件FunCmpErZi.jsx
import React from "react";

const FunCmpErZi = (props) => {
     
    return <div>我劝天公重抖擞,{
     props.next}{
     props.name}</div>;
};

export default FunCmpErZi;
  • 父组件FunCmpBaBa.jsx
import React from "react";
// 导入ErZi组件
import ErZi from "./FunCmpErZi";

const FunCmpBaBa = () => {
     
    // 声明数据
    var next = "不拘一格降人才";
    return (
        <div>
            {
     /* 使用儿子组件 */}
            <ErZi next={
     next} name="龚自珍"></ErZi>
        </div>
    );
};

export default FunCmpBaBa;

组件关系

  • 将一个组件渲染到某一个节点里的时候,会将这个节点里原有内容覆盖
  • 组件嵌套的方式就是将子组件写入到父组件的模板中去,且react没有Vue中的内容分发机制(slot),所以我们在一个组件的模板中只能看到父子关系

组件的组合

// 从 react 的包当中引入了 React 和 React.js 的组件父类 Component
import React,{
     Component} from 'react'
import ReactDOM from 'react-dom'
// 定义子组件
class Title extends Component{
     
	render(){
     
		return (
			<h1>欢迎进入React的世界</h1>
		)
	}
}
class Content extends Component{
     
	render(){
     
		return (
			<p>React.js是一个构建UI的库</p>
		)
	}
}
// 定义父组件,在父组件里面调用子组件
class App extends Component{
     
	render (){
     
		return ( //注意:根节点一定是一个标签
			<div>	
    			<Title /> <Content />
      		</div>
		)
	}
}
/*
由于每个React组件只能有一个根节点,所以要渲染多个组件的时候,需要在最外层包一个容器,如果使用div, 会生成多余的一层dom
*/
ReactDOM.render(
	<App/>,
	document.getElementById('root')
)

React 组件使用_第1张图片

  • 如果不想生成多余的一层dom可以使用React提供的Fragment组件在最外层进行包裹
// 从 react 的包当中引入了 React 和 React.js 的组件父类 Component
// 还引入了一个React.js里的一种特殊的组件 Fragment
import React,{
     Component, Fragment} from 'react'
import ReactDOM from 'react-dom'
// 定义子组件
class Title extends Component{
     
	render(){
     
		return (
			<h1>欢迎进入React的世界</h1>
		)
	}
}
class Content extends Component{
     
	render(){
     
		return (
			<p>React.js是一个构建UI的库</p>
		)
	}
}
// 定义父组件,在父组件里面调用子组件
class App extends Component{
     
	render (){
     
		return (//注意:根节点一定是一个标签
			<Fragment>{
     /*在根节点不想生成多一级的标签  使用 Fragment*/}
    			<Title /> <Content />
      		</Fragment>
		)
	}
}
/*
Fragment 简写方式 <>
上面代码可以简写成:<>  <Content /> </>
*/</span>
ReactDOM<span class="token punctuation">.</span><span class="token function">render</span><span class="token punctuation">(</span>
	<span class="token operator"><</span>App<span class="token operator">/</span><span class="token operator">></span><span class="token punctuation">,</span>
	document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'root'</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/9af48f2d44f1454aa740ad890d495077.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9af48f2d44f1454aa740ad890d495077.jpg" alt="React 组件使用_第2张图片" width="650" height="112" style="border:1px solid black;"></a></p> 
  <h3>组件的嵌套</h3> 
  <pre><code class="prism language-js"><span class="token comment">//1.引入 react</span>
<span class="token keyword">import</span> React<span class="token punctuation">,</span><span class="token punctuation">{
     </span>Component<span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">"react"</span>
<span class="token comment">//2.引入  react-dom</span>
<span class="token keyword">import</span> ReactDOM <span class="token keyword">from</span> <span class="token string">'react-dom'</span>

<span class="token comment">//子组件</span>
<span class="token keyword">class</span> <span class="token class-name">List</span> <span class="token keyword">extends</span> <span class="token class-name">Component</span><span class="token punctuation">{
     </span>
	<span class="token function">render</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{
     </span>
		<span class="token keyword">return</span> <span class="token punctuation">(</span>
			<span class="token operator"><</span>div<span class="token operator">></span>
       			<span class="token operator"><</span>h1<span class="token operator">></span>欢迎进入列表<span class="token operator"><</span><span class="token operator">/</span>h1<span class="token operator">></span>
        		<span class="token operator"><</span>Item<span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>Item<span class="token operator">></span>
      		<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
		<span class="token punctuation">)</span>	
	<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token comment">//孙子组件</span>
<span class="token keyword">class</span> <span class="token class-name">Item</span> <span class="token keyword">extends</span> <span class="token class-name">Component</span><span class="token punctuation">{
     </span>
	<span class="token function">render</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{
     </span>
		<span class="token keyword">return</span> <span class="token operator"><</span>div<span class="token operator">></span>我们列表中的内容<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
	<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token comment">//父组件</span>
<span class="token keyword">class</span> <span class="token class-name">App</span> <span class="token keyword">extends</span> <span class="token class-name">Component</span><span class="token punctuation">{
     </span>
	<span class="token function">render</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{
     </span>
		<span class="token keyword">return</span> <span class="token operator"><</span><span class="token operator">></span><span class="token operator"><</span>List <span class="token operator">/</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span><span class="token operator">></span>
	<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
ReactDOM<span class="token punctuation">.</span><span class="token function">render</span><span class="token punctuation">(</span>
	<span class="token operator"><</span>App<span class="token operator">/</span><span class="token operator">></span><span class="token punctuation">,</span>
	document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'root'</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/4b6f65c148f9452680a1bc22545dcf87.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/4b6f65c148f9452680a1bc22545dcf87.jpg" alt="React 组件使用_第3张图片" width="650" height="190" style="border:1px solid black;"></a></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1395890586334056448"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(React,全家桶,react,组件)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1948027831502041088.htm"
                           title="RabbitMQ面试精讲 Day 3:Exchange类型与路由策略详解" target="_blank">RabbitMQ面试精讲 Day 3:Exchange类型与路由策略详解</a>
                        <span class="text-muted">在未来等你</span>
<a class="tag" taget="_blank" href="/search/RabbitMQ%E9%9D%A2%E8%AF%95%E4%B8%93%E6%A0%8F/1.htm">RabbitMQ面试专栏</a><a class="tag" taget="_blank" href="/search/RabbitMQ/1.htm">RabbitMQ</a><a class="tag" taget="_blank" href="/search/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/1.htm">消息队列</a><a class="tag" taget="_blank" href="/search/Exchange/1.htm">Exchange</a><a class="tag" taget="_blank" href="/search/%E8%B7%AF%E7%94%B1%E7%AD%96%E7%95%A5/1.htm">路由策略</a><a class="tag" taget="_blank" href="/search/AMQP/1.htm">AMQP</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">面试题</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/1.htm">分布式系统</a>
                        <div>【RabbitMQ面试精讲Day3】Exchange类型与路由策略详解文章标签RabbitMQ,消息队列,Exchange,路由策略,AMQP,面试题,分布式系统文章简述本文是"RabbitMQ面试精讲"系列第3天内容,深入解析RabbitMQ的核心组件——Exchange及其路由策略。文章详细剖析4种Exchange类型(Direct/Fanout/Topic/Header)的工作原理和适用场景</div>
                    </li>
                    <li><a href="/article/1948021649915834368.htm"
                           title="技术演进中的开发沉思-42 MFC系列:Components 与 ActiveX Controls" target="_blank">技术演进中的开发沉思-42 MFC系列:Components 与 ActiveX Controls</a>
                        <span class="text-muted">chilavert318</span>
<a class="tag" taget="_blank" href="/search/%E7%86%AC%E4%B9%8B%E6%BB%B4%E6%B0%B4%E7%A9%BF%E7%9F%B3/1.htm">熬之滴水穿石</a><a class="tag" taget="_blank" href="/search/mfc/1.htm">mfc</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a>
                        <div>点击程序启动时,是不是看过有加载的画面。在VC开发时,可使用VC++的ComponentGallery,找到Splashscreen组件,当时觉得组件就是给程序员的暖手宝。一、ComponentGalleryComponentGallery在VC++里的位置很特别——它藏在“Project”菜单的二级目录里,就像老衣柜最上层那个带锁的抽屉,不常用但一打开全是宝贝。当年我们团队有个不成文的规矩:新项</div>
                    </li>
                    <li><a href="/article/1948019129323679744.htm"
                           title="Spring MVC、Spring Boot 和 Spring Cloud简要介绍及区别" target="_blank">Spring MVC、Spring Boot 和 Spring Cloud简要介绍及区别</a>
                        <span class="text-muted">箬敏伊儿</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a>
                        <div>SpringMVC、SpringBoot和SpringCloud是Spring生态系统中的三个重要组件,它们在不同层面上帮助开发者构建和管理应用程序。以下是对它们的介绍及其区别:SpringMVC介绍SpringMVC(Model-View-Controller)是一个基于Java的Web框架,用于构建Web应用程序和RESTful服务。它提供了一组组件和注解,简化了Web应用程序的开发,尤其是与</div>
                    </li>
                    <li><a href="/article/1948006527742832640.htm"
                           title="Eureka 和 Nacos" target="_blank">Eureka 和 Nacos</a>
                        <span class="text-muted">简单程序猿</span>
<a class="tag" taget="_blank" href="/search/eureka/1.htm">eureka</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
                        <div>一、基本介绍EurekaEureka是Netflix公司开发的一款基于REST风格的服务注册与发现组件,专为分布式系统设计。它遵循AP原则(可用性、分区容错性优先),强调在网络分区等异常情况下的服务可用性,是SpringCloudNetflix生态中的核心组件之一。NacosNacos(DynamicNamingandConfigurationService)是阿里巴巴开源的一站式服务发现、配置管</div>
                    </li>
                    <li><a href="/article/1947999598358360064.htm"
                           title="解决Error: Not Found:Page[5][-1,81] at view.umd.min.js" target="_blank">解决Error: Not Found:Page[5][-1,81] at view.umd.min.js</a>
                        <span class="text-muted">二七狂人</span>
<a class="tag" taget="_blank" href="/search/uniapp/1.htm">uniapp</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/uniapp/1.htm">uniapp</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a>
                        <div>场景说明:uniapp使用组件,在APP环境出现,在H5环境正常。单页面上多处使用该组件,使用同名参数设置数据,应用切换效果时,触发请求不同接口,返回数据格式不同。使用v-if时出现,使用v-show时正常。原因分析:尚不明确。解决方案1:将组件注册多个不同名称来使用,对应不同的返回数据。importvTabsfrom"@/components/v-tabs.vue"importvTabs1fro</div>
                    </li>
                    <li><a href="/article/1947995946633719808.htm"
                           title="vue怎么在style中使用data中定义的变量" target="_blank">vue怎么在style中使用data中定义的变量</a>
                        <span class="text-muted">界面架构师</span>
<a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a>
                        <div>需求动态修改三方组件的样式。思路项目开发中使用的某某某三方ui组件,所以想要修改这个组件的样式只能通过css进行修改,那么想要动态修改,就要在style中使用data里的变量。实现...mounted(){this.$el.style.setProperty('--colorStyle',this.color)}//若该变量是动态变化的watch:{color(val,oldVal){this.$</div>
                    </li>
                    <li><a href="/article/1947972000324579328.htm"
                           title="《Spring核心容器源码解密:IOC与事件驱动模型》" target="_blank">《Spring核心容器源码解密:IOC与事件驱动模型》</a>
                        <span class="text-muted"></span>

                        <div>Spring核心容器源码解密:IOC与事件驱动模型引言:Spring容器的核心职责Spring框架的核心容器是其基石,承担着两大关键职责:控制反转(IOC):管理对象生命周期与依赖关系事件驱动模型:实现组件间解耦通信这两大机制共同构建了Spring"高内聚、低耦合"的架构哲学。本文将深入源码层面,揭示IOC容器与事>件模型如何协同工作,并通过实战展示如何构建解耦的业务系统。Spring容器IOC控</div>
                    </li>
                    <li><a href="/article/1947965572906020864.htm"
                           title="DNS考点" target="_blank">DNS考点</a>
                        <span class="text-muted"></span>

                        <div>在网络工程师、系统工程师、运维工程师、安全工程师等岗位的面试中,DNS(DomainNameSystem,域名系统)是高频必考知识点。DNS作为互联网的“电话簿”,负责将人类可读的域名(如www.example.com)解析为机器可识别的IP地址(如192.0.2.1),是网络通信的基础组件。以下是系统化的核心考点梳理,涵盖DNS基础概念、工作原理、协议细节及应聘高频问题。一、DNS基础考点1.D</div>
                    </li>
                    <li><a href="/article/1947955231455244288.htm"
                           title="【无标题】" target="_blank">【无标题】</a>
                        <span class="text-muted"></span>

                        <div>PyQt5相关论文方向扩充及技术特性解析PyQt5的核心优势PyQt5作为基于Qt框架的Python绑定库,在科研与工程应用中具备显著优势。其跨平台兼容性极强,可在Windows、macOS、Linux等主流操作系统上稳定运行,且能保持界面风格的一致性,这对开发多场景应用系统至关重要。在界面设计方面,PyQt5提供了丰富的UI组件库,从基础的按钮、文本框到高级的图表、3D控件应有尽有,同时支持Qt</div>
                    </li>
                    <li><a href="/article/1947950818019831808.htm"
                           title="Flutter基础(前端教程①⑦-Column竖直-Row水平-Warp包裹-Stack堆叠)" target="_blank">Flutter基础(前端教程①⑦-Column竖直-Row水平-Warp包裹-Stack堆叠)</a>
                        <span class="text-muted">aaiier</span>
<a class="tag" taget="_blank" href="/search/Flutter/1.htm">Flutter</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a>
                        <div>MainAxisAlignment是一个枚举类,用于控制主轴(MainAxis)方向上子组件的排列和对齐方式。MainAxisAlignment的常用取值及效果:MainAxisAlignment.start子组件沿主轴的起点对齐(Row左对齐,Column顶部对齐)MainAxisAlignment.end子组件沿主轴的终点对齐(Row右对齐,Column底部对齐)MainAxisAlignme</div>
                    </li>
                    <li><a href="/article/1947945146318385152.htm"
                           title="instantiate 卡顿严重_Unity3D研究院之利用缓存池解决Instantiate慢的问题(七十三)..." target="_blank">instantiate 卡顿严重_Unity3D研究院之利用缓存池解决Instantiate慢的问题(七十三)...</a>
                        <span class="text-muted">weixin_39992312</span>
<a class="tag" taget="_blank" href="/search/instantiate/1.htm">instantiate</a><a class="tag" taget="_blank" href="/search/%E5%8D%A1%E9%A1%BF%E4%B8%A5%E9%87%8D/1.htm">卡顿严重</a>
                        <div>Unity3D做项目有三个地方处理不好游戏整体就会出现卡顿的问题。2.角色放技能的时候卡尤其是放群体攻击技能时,因为每个人身上都要产生一个技能特效。技能都是用粒子特效做的,虽然Unity中粒子特效也是一个GameObject.但是ParticleSystem这个组件太特殊了。Instantiate以后会自动的执行脚本的初始化工作,ParticleSystem组件肯定也是个脚本,虽然我们看不到它实现</div>
                    </li>
                    <li><a href="/article/1947943757873737728.htm"
                           title="Java学习----NIO模型" target="_blank">Java学习----NIO模型</a>
                        <span class="text-muted">典孝赢麻崩乐急</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/nio/1.htm">nio</a>
                        <div>在Java的I/O模型中,NIO(Non-BlockingI/O,非阻塞I/O)是对BIO的重要改进。它为高并发场景提供了更高效的处理方式,在众多Java应用中发挥着关键作用。NIO模型的核心在于非阻塞和多路复用,其采用“一个线程处理多个连接”的模式,主要依靠通道(Channel)、缓冲区(Buffer)和选择器(Selector)这三个核心组件协同工作,每个核心组件的功能原理和功能如下:(1)通</div>
                    </li>
                    <li><a href="/article/1947941108378038272.htm"
                           title="【第17章】亿级电商订单系统架构设计-概要设计" target="_blank">【第17章】亿级电商订单系统架构设计-概要设计</a>
                        <span class="text-muted">cherry5230</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BF%E7%BA%A7%E6%B5%81%E9%87%8F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E4%B8%8E%E8%90%BD%E5%9C%B0/1.htm">亿级流量架构设计与落地</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a>
                        <div>1-1本章导学课程概述核心内容:从粗到精细化系统架构设计项目案例:年交易额200亿的B2B电商平台订单系统学习路径1.高层架构设计细化阶段分为两个核心部分:概要设计(本章重点)详细设计2.本章学习目标(1)概要设计方法论理解设计阶段的核心任务掌握具体实施方法建立设计思想指导体系(2)项目实践应用项目工程架构搭建环境配置规范组件关系梳理客户端->网关层->业务层->数据层(3)基础框架构建工程结构初</div>
                    </li>
                    <li><a href="/article/1947933928866246656.htm"
                           title="Android UI 组件系列(五):CheckBox、RadioButton 与 Switch 控件详解" target="_blank">Android UI 组件系列(五):CheckBox、RadioButton 与 Switch 控件详解</a>
                        <span class="text-muted"></span>

                        <div>博客专栏:Android初级入门UI组件与布局源码:通过网盘分享的文件:Android入门布局及UI相关案例链接:https://pan.baidu.com/s/1EOuDUKJndMISolieFSvXXg?pwd=4k9n提取码:4k9n引言在Android开发中,用户与应用的交互往往离不开各种“选择”操作,例如:注册表单中选择兴趣爱好(可多选)设置界面中切换通知、Wi-Fi开关(开/关状态)</div>
                    </li>
                    <li><a href="/article/1947929645454258176.htm"
                           title="Android Jetpack Compose + MVI 开发流程深度分析" target="_blank">Android Jetpack Compose + MVI 开发流程深度分析</a>
                        <span class="text-muted">你过来啊你</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/compose/1.htm">compose</a><a class="tag" taget="_blank" href="/search/mvi/1.htm">mvi</a>
                        <div>MVI架构核心原理MVI(Model-View-Intent)是一种基于单向数据流的架构模式,其核心组件关系如下:[View]--Intents-->[ViewModel]--States-->[View]||用户交互事件处理业务逻辑||[View]=emptyList(),valisLoading:Boolean=false,valerror:String?=null,valnewTodoTit</div>
                    </li>
                    <li><a href="/article/1947910737913507840.htm"
                           title="如何使用React Native与Meteor集成:一个全面指南" target="_blank">如何使用React Native与Meteor集成:一个全面指南</a>
                        <span class="text-muted"></span>

                        <div>如何使用ReactNative与Meteor集成:一个全面指南项目介绍react-native-meteor是一个强大的开源项目,它允许开发者无缝地将ReactNative应用程序与Meteor后端连接起来。此库让你能够充分利用Meteor特有的功能,如自动化的账户系统、响应式数据追踪等,为你的移动应用带来无与伦比的开发体验。通过结合ReactNative的强大UI能力和Meteor的实时Web框</div>
                    </li>
                    <li><a href="/article/1947903550533201920.htm"
                           title="一文弄懂开源大型语言模型 (LLM) 应用程序开发平台--Dify" target="_blank">一文弄懂开源大型语言模型 (LLM) 应用程序开发平台--Dify</a>
                        <span class="text-muted">Llama-Turbo</span>
<a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">AI大模型</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/dify/1.htm">dify</a>
                        <div>Dify简介Dify是一个开源大型语言模型(LLM)应用程序开发平台,旨在弥合AI应用程序原型设计与生产部署之间的差距。本文为希望了解或扩展该平台的开发者和技术用户提供了Dify架构、组件和功能的技术概述。平台概述Dify提供端到端解决方案,通过可视化工具和API的组合,构建基于LLM的应用程序。其架构旨在支持AI应用程序开发的整个生命周期,包括模型集成、提示、知识管理、工作流编排和部署。主要特点</div>
                    </li>
                    <li><a href="/article/1947903423777140736.htm"
                           title="C++ STL教程-vector用法详解" target="_blank">C++ STL教程-vector用法详解</a>
                        <span class="text-muted">yhwang-hub</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a>
                        <div>目录C++STL基本组成(6大组件+13个头文件)C++STLvector容器迭代器用法详解vector容器迭代器的基本用法vector容器迭代器的独特之处C++STLvector容器访问元素的几种方式访问vector容器中多个元素C++STLvector添加元素(push_back()和emplace_back())详解C++STLvector插入元素(insert()和emplace())详解</div>
                    </li>
                    <li><a href="/article/1947900773316751360.htm"
                           title="Python FastMCP:让你的AI工具链飞起来" target="_blank">Python FastMCP:让你的AI工具链飞起来</a>
                        <span class="text-muted"></span>

                        <div>PythonFastMCP:让你的AI工具链飞起来FastMCPFastMCP是什么?1.工具(Tools):赋予LLM执行能力2.Resources(资源):安全数据通道3.Prompts(提示模板):标准化LLM交互4.组件协同:构建项目AI工具链5.部署架构与性能优化博主热门文章推荐:官方文档:FastMCP官方文档:https://gofastmcp.com/MCP协议规范:https:/</div>
                    </li>
                    <li><a href="/article/1947899134950305792.htm"
                           title="Vue 3 组合式 API 中的组件生命周期函数详解" target="_blank">Vue 3 组合式 API 中的组件生命周期函数详解</a>
                        <span class="text-muted">码力无边-OEC</span>
<a class="tag" taget="_blank" href="/search/Vue/1.htm">Vue</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a>
                        <div>Vue3组合式API中的组件生命周期函数详解Vue3引入了组合式API(CompositionAPI),相比于选项式API(OptionsAPI),它更加灵活且易于复用。在组件的开发中,生命周期函数是必不可少的一部分,用于在特定的阶段执行逻辑操作。本文将详细讲解Vue3组合式API的生命周期函数及其相关知识点,并通过语法糖实现相关示例。什么是生命周期函数?Vue组件从创建到销毁的过程中,会经历一系</div>
                    </li>
                    <li><a href="/article/1947899008747892736.htm"
                           title="消息队列MQ" target="_blank">消息队列MQ</a>
                        <span class="text-muted">不辉放弃</span>
<a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%BC%80%E5%8F%91/1.htm">大数据开发</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>消息队列(MessageQueue,简称MQ)是一种基于异步通信模式的中间件技术,核心作用是在分布式系统中实现消息的存储、传递和缓冲,解决不同组件/服务之间的通信耦合问题,提升系统的灵活性、可靠性和可扩展性。一、核心概念与本质消息队列的本质是一个“存储消息的容器”,但它并非简单的存储工具,而是通过一套规则(如消息路由、持久化、确认机制等)实现“生产者”和“消费者”的解耦通信:生产者(Produce</div>
                    </li>
                    <li><a href="/article/1947890566138228736.htm"
                           title="iOS组件化详解" target="_blank">iOS组件化详解</a>
                        <span class="text-muted">ideal树叶</span>
<a class="tag" taget="_blank" href="/search/iOS/1.htm">iOS</a><a class="tag" taget="_blank" href="/search/objective-c/1.htm">objective-c</a><a class="tag" taget="_blank" href="/search/swift/1.htm">swift</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a>
                        <div>一、为什么要做组件化开发?在iOS项目迭代过程中,随着业务复杂度提升、团队规模扩大,传统单体架构会逐渐暴露以下问题:代码耦合严重:模块间直接依赖(如#import"XXViewController.h"),改一处动全身,维护成本高;团队协作低效:多人开发同一仓库易冲突,代码合并成本高;编译速度慢:单工程代码量过大,每次编译需全量处理,耗时久;复用性差:功能模块无法单独抽离复用(如登录模块在多APP</div>
                    </li>
                    <li><a href="/article/1947887792637931520.htm"
                           title="没有 Mac,如何上架 iOS App?跨平台团队的全流程实践指南" target="_blank">没有 Mac,如何上架 iOS App?跨平台团队的全流程实践指南</a>
                        <span class="text-muted">程序员不说人话</span>
<a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/iphone/1.htm">iphone</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/webview/1.htm">webview</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a>
                        <div>在许多以Flutter、ReactNative等技术栈开发的项目中,经常面临一个现实问题:团队缺少足够的Mac设备,可iOS上架流程却被Mac严重绑架。今天我们就来聊聊“没有Mac,如何顺利上架iOSApp?”,结合我们在多个项目中积累的实战经验,分享一整套可复用的跨平台上架方案,让Windows、Linux开发者也能协作完成iOS上架,并保持高效、稳定、安全。为什么“没有Mac”是个上架难题?i</div>
                    </li>
                    <li><a href="/article/1947856272393039872.htm"
                           title="开源流程引擎Camunda简介" target="_blank">开源流程引擎Camunda简介</a>
                        <span class="text-muted">° 安如少年初如梦662</span>
<a class="tag" taget="_blank" href="/search/Java%E5%AD%A6%E4%B9%A0%E8%AE%B0%E5%BD%95/1.htm">Java学习记录</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>目录简单介绍主要组件与名词介绍常见名词解释核心组件介绍一些思考与前端的关系前端逻辑的简化后端接口的专注流程引擎的控制作用数据和状态的管理监控和管理的集中化参考资料简单介绍Camunda的本质是可以独立运行的一套流程引擎,流程引擎会根据预先设定(类似流程图内的流程图)好的规则和逻辑进行流程执行。主要组件与名词介绍常见名词解释BPMN:即业务流程模型和标记,是一种业界标准的流程建模语言。Camunda</div>
                    </li>
                    <li><a href="/article/1947855892959522816.htm"
                           title="从 0 到 1 搞定nvidia 独显推流:硬件视频编码环境安装完整学习笔记" target="_blank">从 0 到 1 搞定nvidia 独显推流:硬件视频编码环境安装完整学习笔记</a>
                        <span class="text-muted">lxmyzzs</span>
<a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E7%AE%97%E6%B3%95%E4%B9%8B%E9%9F%B3%E8%A7%86%E9%A2%91%E7%BC%96%E8%A7%A3%E7%A0%81/1.htm">图像算法之音视频编解码</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>笔记用于安装和配置一套完整的媒体处理工具链,包括NVIDIA编码头文件、带CUDA加速的FFmpeg以及ZLMediaKit流媒体服务框架,适用于需要进行视频编解码、流媒体推流/拉流等场景的开发与部署。标题核心组件及版本说明nv-codec-headers来源:Gitee仓库jario-jin/nv-codec-headers版本:n11.1.5.0(对应NVIDIAVideoCodecSDK接口</div>
                    </li>
                    <li><a href="/article/1947846440738942976.htm"
                           title="Unity 新旧输入系统对比" target="_blank">Unity 新旧输入系统对比</a>
                        <span class="text-muted">死也不注释</span>
<a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%95%E6%93%8E/1.htm">游戏引擎</a>
                        <div>Unity新旧输入系统全面对比与选型指南一、核心架构对比特性旧输入系统(InputManager)新输入系统(InputSystem)架构模型基于轮询的单体式架构基于事件的模块化架构配置方式Edit>ProjectSettings>InputInputActionAssets(可视化编辑)核心组件Input静态类InputAction,PlayerInput组件多平台支持需要手动配置不同输入轴设备</div>
                    </li>
                    <li><a href="/article/1947843665762250752.htm"
                           title="Netty技术全解析:MessageToMessageDecoder类深度解析" target="_blank">Netty技术全解析:MessageToMessageDecoder类深度解析</a>
                        <span class="text-muted">码到三十五</span>
<a class="tag" taget="_blank" href="/search/netty%E8%A7%A3%E6%9E%90/1.htm">netty解析</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/go/1.htm">go</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a>
                        <div>❃博主首页:「码到三十五」,同名公众号:「码到三十五」,wx号:「liwu0213」☠博主专栏:♝博主的话:搬的每块砖,皆为峰峦之基;公众号搜索「码到三十五」关注这个爱发技术干货的coder,一起筑基在Netty这个高性能的网络编程框架中,MessageToMessageDecoder类是一个关键的组件,它主要用于处理基于消息的解码。与直接处理字节流的解码器不同,MessageToMessageD</div>
                    </li>
                    <li><a href="/article/1947838619272146944.htm"
                           title="Nginx 如何解决单页应用 History 模式路由的 404 难题?" target="_blank">Nginx 如何解决单页应用 History 模式路由的 404 难题?</a>
                        <span class="text-muted">wsj__WSJ</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a>
                        <div>在现代前端开发中,单页应用(SPA)已经成为主流架构。无论是React、Vue还是Angular,都广泛使用History模式路由来实现无刷新页面跳转。但这个看似流畅的体验背后,却隐藏着一个容易被忽视的服务器配置问题——当用户直接访问路由地址或刷新页面时,往往会出现404错误。今天我们就来聊聊Nginx是如何通过简单配置解决这个问题的。一、History模式路由的“陷阱”先来看一个常见场景:当我们</div>
                    </li>
                    <li><a href="/article/1947833955059298304.htm"
                           title="ikun-ui v0.2.7版本发布:组件功能增强与体验优化" target="_blank">ikun-ui v0.2.7版本发布:组件功能增强与体验优化</a>
                        <span class="text-muted">时琦旖</span>

                        <div>ikun-uiv0.2.7版本发布:组件功能增强与体验优化ikun-ui是一个基于Svelte框架构建的现代化UI组件库,专注于为开发者提供高质量、易用的前端组件。在最新发布的v0.2.7版本中,团队对多个核心组件进行了功能增强和体验优化,特别是在交互体验和视觉表现方面有了显著提升。组件功能增强工具提示与弹出框组件优化工具提示(Tooltip)和弹出框(Popover)组件新增了两项实用的交互控制</div>
                    </li>
                    <li><a href="/article/1947830299484286976.htm"
                           title="【前端】ikun-qrcode:极简的二维码生成组件,使用view而非canvas避免层级问题" target="_blank">【前端】ikun-qrcode:极简的二维码生成组件,使用view而非canvas避免层级问题</a>
                        <span class="text-muted">青春狗头少年不会梦到格温学姐</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>文章目录背景ikun-qrcode界面效果如何发布一款自己的插件到uniapp市场。(5分钟搞定)背景之前在uniapp上100行搞定二维码生成,现在封装为vue组件分享出来:下载地址:https://ext.dcloud.net.cn/plugin?id=19351ikun-qrcode使用基础的view渲染二维码,需要给定宽高和单位和数据:uniapp默认整体宽度是750rpx。界面效果如何发</div>
                    </li>
                                <li><a href="/article/15.htm"
                                       title="Spring4.1新特性——Spring MVC增强" target="_blank">Spring4.1新特性——Spring MVC增强</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a>
                                    <div>目录 
Spring4.1新特性——综述 
Spring4.1新特性——Spring核心部分及其他 
Spring4.1新特性——Spring缓存框架增强 
Spring4.1新特性——异步调用和事件机制的异常处理 
Spring4.1新特性——数据库集成测试脚本初始化 
Spring4.1新特性——Spring MVC增强 
Spring4.1新特性——页面自动化测试框架Spring MVC T</div>
                                </li>
                                <li><a href="/article/142.htm"
                                       title="mysql 性能查询优化" target="_blank">mysql 性能查询优化</a>
                                    <span class="text-muted">annan211</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E4%BC%98%E5%8C%96/1.htm">优化</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a>
                                    <div>

1 时间到底花在哪了?
  mysql在执行查询的时候需要执行一系列的子任务,这些子任务包含了整个查询周期最重要的阶段,这其中包含了大量为了
  检索数据列到存储引擎的调用以及调用后的数据处理,包括排序、分组等。在完成这些任务的时候,查询需要在不同的地方
  花费时间,包括网络、cpu计算、生成统计信息和执行计划、锁等待等。尤其是向底层存储引擎检索数据的调用操作。这些调用需要在内存操</div>
                                </li>
                                <li><a href="/article/269.htm"
                                       title="windows系统配置" target="_blank">windows系统配置</a>
                                    <span class="text-muted">cherishLC</span>
<a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a>
                                    <div>删除Hiberfil.sys :使用命令powercfg -h off 关闭休眠功能即可: 
http://jingyan.baidu.com/article/f3ad7d0fc0992e09c2345b51.html 
类似的还有pagefile.sys 
 
msconfig 配置启动项 
shutdown 定时关机 
 
ipconfig 查看网络配置 
ipconfig /flushdns</div>
                                </li>
                                <li><a href="/article/396.htm"
                                       title="人体的排毒时间" target="_blank">人体的排毒时间</a>
                                    <span class="text-muted">Array_06</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a>
                                    <div>======================== 
||  人体的排毒时间是什么时候?|| 
========================  
 
转载于: 
http://zhidao.baidu.com/link?url=ibaGlicVslAQhVdWWVevU4TMjhiKaNBWCpZ1NS6igCQ78EkNJZFsEjCjl3T5EdXU9SaPg04bh8MbY1bR</div>
                                </li>
                                <li><a href="/article/523.htm"
                                       title="ZooKeeper" target="_blank">ZooKeeper</a>
                                    <span class="text-muted">cugfy</span>
<a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a>
                                    <div>Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步, 配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端API。 Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来lea</div>
                                </li>
                                <li><a href="/article/650.htm"
                                       title="网络爬虫的乱码处理" target="_blank">网络爬虫的乱码处理</a>
                                    <span class="text-muted">随意而生</span>
<a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                                    <div>下边简单总结下关于网络爬虫的乱码处理。注意,这里不仅是中文乱码,还包括一些如日文、韩文 、俄文、藏文之类的乱码处理,因为他们的解决方式 是一致的,故在此统一说明。     网络爬虫,有两种选择,一是选择nutch、hetriex,二是自写爬虫,两者在处理乱码时,原理是一致的,但前者处理乱码时,要看懂源码后进行修改才可以,所以要废劲一些;而后者更自由方便,可以在编码处理</div>
                                </li>
                                <li><a href="/article/777.htm"
                                       title="Xcode常用快捷键" target="_blank">Xcode常用快捷键</a>
                                    <span class="text-muted">张亚雄</span>
<a class="tag" taget="_blank" href="/search/xcode/1.htm">xcode</a>
                                    <div>一、总结的常用命令: 
 
    隐藏xcode command+h 
 
    退出xcode command+q 
 
    关闭窗口 command+w 
 
    关闭所有窗口 command+option+w 
 
    关闭当前</div>
                                </li>
                                <li><a href="/article/904.htm"
                                       title="mongoDB索引操作" target="_blank">mongoDB索引操作</a>
                                    <span class="text-muted">adminjun</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/%E7%B4%A2%E5%BC%95/1.htm">索引</a>
                                    <div>一、索引基础:    MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令:    > db.test.ensureIndex({"username":1})    可以通过下面的名称查看索引是否已经成功建立: &nbs</div>
                                </li>
                                <li><a href="/article/1031.htm"
                                       title="成都软件园实习那些话" target="_blank">成都软件园实习那些话</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/%E6%88%90%E9%83%BD+%E8%BD%AF%E4%BB%B6%E5%9B%AD+%E5%AE%9E%E4%B9%A0/1.htm">成都 软件园 实习</a>
                                    <div>无聊之中,翻了一下日志,发现上一篇经历是很久以前的事了,悔过~~ 
  断断续续离开了学校快一年了,习惯了那里一天天的幼稚、成长的环境,到这里有点与世隔绝的感觉。不过还好,那是刚到这里时的想法,现在感觉在这挺好,不管怎么样,最要感谢的还是老师能给这么好的一次催化成长的机会,在这里确实看到了好多好多能想到或想不到的东西。 
  都说在外面和学校相比最明显的差距就是与人相处比较困难,因为在外面每个人都</div>
                                </li>
                                <li><a href="/article/1158.htm"
                                       title="Linux下FTP服务器安装及配置" target="_blank">Linux下FTP服务器安装及配置</a>
                                    <span class="text-muted">ayaoxinchao</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/FTP%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">FTP服务器</a><a class="tag" taget="_blank" href="/search/vsftp/1.htm">vsftp</a>
                                    <div>检测是否安装了FTP 
[root@localhost ~]# rpm -q vsftpd 
如果未安装:package vsftpd is not installed  安装了则显示:vsftpd-2.0.5-28.el5累死的版本信息 
  
安装FTP 
运行yum install vsftpd命令,如[root@localhost ~]# yum install vsf</div>
                                </li>
                                <li><a href="/article/1285.htm"
                                       title="使用mongo-java-driver获取文档id和查找文档" target="_blank">使用mongo-java-driver获取文档id和查找文档</a>
                                    <span class="text-muted">BigBird2012</span>
<a class="tag" taget="_blank" href="/search/driver/1.htm">driver</a>
                                    <div>注:本文所有代码都使用的mongo-java-driver实现。 
  
在MongoDB中,一个集合(collection)在概念上就类似我们SQL数据库中的表(Table),这个集合包含了一系列文档(document)。一个DBObject对象表示我们想添加到集合(collection)中的一个文档(document),MongoDB会自动为我们创建的每个文档添加一个id,这个id在</div>
                                </li>
                                <li><a href="/article/1412.htm"
                                       title="JSONObject以及json串" target="_blank">JSONObject以及json串</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/JSONObject/1.htm">JSONObject</a>
                                    <div>一.JAR包简介 
    要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: 
    1.commons-lang-2.0.jar 
    2.commons-beanutils-1.7.0.jar 
    3.commons-collections-3.1.jar 
&n</div>
                                </li>
                                <li><a href="/article/1539.htm"
                                       title="[Zookeeper学习笔记之三]Zookeeper实例创建和会话建立的异步特性" target="_blank">[Zookeeper学习笔记之三]Zookeeper实例创建和会话建立的异步特性</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a>
                                    <div>为了说明问题,看个简单的代码, 
  
    import org.apache.zookeeper.*;  
      
    import java.io.IOException;  
    import java.util.concurrent.CountDownLatch;  
    import java.util.concurrent.ThreadLocal</div>
                                </li>
                                <li><a href="/article/1666.htm"
                                       title="【Scala十二】Scala核心六:Trait" target="_blank">【Scala十二】Scala核心六:Trait</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                    <div>Traits are a fundamental unit of code reuse in Scala. A trait encapsulates method and field definitions, which can then be reused by mixing them into classes. Unlike class inheritance, in which each c</div>
                                </li>
                                <li><a href="/article/1793.htm"
                                       title="weblogic version 10.3破解" target="_blank">weblogic version 10.3破解</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/weblogic/1.htm">weblogic</a>
                                    <div>版本:WebLogic Server 10.3 
 
说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录 
例如我的做测试的域的根目录 DOMAIN_HOME=D:/Weblogic/Middleware/user_projects/domains/base_domain 
 
1.为了保证操作安全,备份%DOMAIN_HOME%/security/Defa</div>
                                </li>
                                <li><a href="/article/1920.htm"
                                       title="求第n个斐波那契数" target="_blank">求第n个斐波那契数</a>
                                    <span class="text-muted">BrokenDreams</span>

                                    <div>        今天看到群友发的一个问题:写一个小程序打印第n个斐波那契数。 
        自己试了下,搞了好久。。。基础要加强了。 
        
  &nbs</div>
                                </li>
                                <li><a href="/article/2047.htm"
                                       title="读《研磨设计模式》-代码笔记-访问者模式-Visitor" target="_blank">读《研磨设计模式》-代码笔记-访问者模式-Visitor</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
 
 


import java.util.ArrayList;
import java.util.List;

interface IVisitor {
	
	//第二次分派,Visitor调用Element
	void visitConcret</div>
                                </li>
                                <li><a href="/article/2174.htm"
                                       title="MatConvNet的excise 3改为网络配置文件形式" target="_blank">MatConvNet的excise 3改为网络配置文件形式</a>
                                    <span class="text-muted">cherishLC</span>
<a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a>
                                    <div>MatConvNet为vlFeat作者写的matlab下的卷积神经网络工具包,可以使用GPU。 
主页:
http://www.vlfeat.org/matconvnet/ 
教程:
http://www.robots.ox.ac.uk/~vgg/practicals/cnn/index.html 
 
注意:需要下载新版的MatConvNet替换掉教程中工具包中的matconvnet:
http</div>
                                </li>
                                <li><a href="/article/2301.htm"
                                       title="ZK Timeout再讨论" target="_blank">ZK Timeout再讨论</a>
                                    <span class="text-muted">chenchao051</span>
<a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/timeout/1.htm">timeout</a><a class="tag" taget="_blank" href="/search/hbase/1.htm">hbase</a>
                                    <div>http://crazyjvm.iteye.com/blog/1693757 文中提到相关超时问题,但是又出现了一个问题,我把min和max都设置成了180000,但是仍然出现了以下的异常信息: 
Client session timed out, have not heard from server in 154339ms for sessionid 0x13a3f7732340003</div>
                                </li>
                                <li><a href="/article/2428.htm"
                                       title="CASE WHEN 用法介绍" target="_blank">CASE WHEN 用法介绍</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/group+by/1.htm">group by</a><a class="tag" taget="_blank" href="/search/case+when/1.htm">case when</a>
                                    <div>CASE WHEN 用法介绍 
 
1. CASE WHEN 表达式有两种形式 
 
 
--简单Case函数  
 
CASE sex  
WHEN '1' THEN '男'  
WHEN '2' THEN '女'  
ELSE '其他' END  
 
--Case搜索函数  
 
CASE 
WHEN sex = '1' THEN </div>
                                </li>
                                <li><a href="/article/2555.htm"
                                       title="PHP技巧汇总:提高PHP性能的53个技巧" target="_blank">PHP技巧汇总:提高PHP性能的53个技巧</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a>
                                    <div>PHP技巧汇总:提高PHP性能的53个技巧  用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,  单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的函数译注:  PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。  1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍</div>
                                </li>
                                <li><a href="/article/2682.htm"
                                       title="Yii框架中CGridView的使用方法以及详细示例" target="_blank">Yii框架中CGridView的使用方法以及详细示例</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a>
                                    <div>CGridView显示一个数据项的列表中的一个表。 
表中的每一行代表一个数据项的数据,和一个列通常代表一个属性的物品(一些列可能对应于复杂的表达式的属性或静态文本)。  CGridView既支持排序和分页的数据项。排序和分页可以在AJAX模式或正常的页面请求。使用CGridView的一个好处是,当用户浏览器禁用JavaScript,排序和分页自动退化普通页面请求和仍然正常运行。 
实例代码如下:</div>
                                </li>
                                <li><a href="/article/2809.htm"
                                       title="Maven项目打包成可执行Jar文件" target="_blank">Maven项目打包成可执行Jar文件</a>
                                    <span class="text-muted">dyy_gusi</span>
<a class="tag" taget="_blank" href="/search/assembly/1.htm">assembly</a>
                                    <div>Maven项目打包成可执行Jar文件 
在使用Maven完成项目以后,如果是需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁琐的操作简单。我们可以通过插件完成这项工作,使用assembly插件。具体使用方式如下: 
1、在项目中加入插件的依赖: 
<plugin>
	</div>
                                </li>
                                <li><a href="/article/2936.htm"
                                       title="php常见错误" target="_blank">php常见错误</a>
                                    <span class="text-muted">geeksun</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a>
                                    <div>1.  kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastc</div>
                                </li>
                                <li><a href="/article/3063.htm"
                                       title="修改linux的用户名" target="_blank">修改linux的用户名</a>
                                    <span class="text-muted">hongtoushizi</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/change+password/1.htm">change password</a>
                                    <div>Change Linux Username 
更改Linux用户名,需要修改4个系统的文件: 
/etc/passwd 
/etc/shadow 
/etc/group 
/etc/gshadow 
古老/传统的方法是使用vi去直接修改,但是这有安全隐患(具体可自己搜一下),所以后来改成使用这些命令去代替: 
vipw 
vipw -s 
vigr 
vigr -s 
  
具体的操作顺</div>
                                </li>
                                <li><a href="/article/3190.htm"
                                       title="第五章 常用Lua开发库1-redis、mysql、http客户端" target="_blank">第五章 常用Lua开发库1-redis、mysql、http客户端</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a>
                                    <div>对于开发来说需要有好的生态开发库来辅助我们快速开发,而Lua中也有大多数我们需要的第三方开发库如Redis、Memcached、Mysql、Http客户端、JSON、模板引擎等。 
一些常见的Lua库可以在github上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。 
  Redis客户端 
lua-resty-r</div>
                                </li>
                                <li><a href="/article/3317.htm"
                                       title="zkClient 监控机制实现" target="_blank">zkClient 监控机制实现</a>
                                    <span class="text-muted">liyonghui160com</span>
<a class="tag" taget="_blank" href="/search/zkClient+%E7%9B%91%E6%8E%A7%E6%9C%BA%E5%88%B6%E5%AE%9E%E7%8E%B0/1.htm">zkClient 监控机制实现</a>
                                    <div>  
       直接使用zk的api实现业务功能比较繁琐。因为要处理session loss,session expire等异常,在发生这些异常后进行重连。又因为ZK的watcher是一次性的,如果要基于wather实现发布/订阅模式,还要自己包装一下,将一次性订阅包装成持久订阅。另外如果要使用抽象级别更高的功能,比如分布式锁,leader选举</div>
                                </li>
                                <li><a href="/article/3444.htm"
                                       title="在Mysql 众多表中查找一个表名或者字段名的 SQL 语句" target="_blank">在Mysql 众多表中查找一个表名或者字段名的 SQL 语句</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>在Mysql 众多表中查找一个表名或者字段名的 SQL 语句:   
  方法一:SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE 'Name';
  方法二:SELECT column_name from information_schema.colum</div>
                                </li>
                                <li><a href="/article/3571.htm"
                                       title="程序员对英语的依赖" target="_blank">程序员对英语的依赖</a>
                                    <span class="text-muted">Smile.zeng</span>
<a class="tag" taget="_blank" href="/search/%E8%8B%B1%E8%AF%AD/1.htm">英语</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E7%8C%BF/1.htm">程序猿</a>
                                    <div>1、程序员最基本的技能,至少要能写得出代码,当我们还在为建立类的时候思考用什么单词发牢骚的时候,英语与别人的差距就直接表现出来咯。 
2、程序员最起码能认识开发工具里的英语单词,不然怎么知道使用这些开发工具。 
3、进阶一点,就是能读懂别人的代码,有利于我们学习人家的思路和技术。 
4、写的程序至少能有一定的可读性,至少要人别人能懂吧... 
 
以上一些问题,充分说明了英语对程序猿的重要性。骚年</div>
                                </li>
                                <li><a href="/article/3698.htm"
                                       title="Oracle学习笔记(8) 使用PLSQL编写触发器" target="_blank">Oracle学习笔记(8) 使用PLSQL编写触发器</a>
                                    <span class="text-muted">vipbooks</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a><a class="tag" taget="_blank" href="/search/Access/1.htm">Access</a>
                                    <div>    时间过得真快啊,转眼就到了Oracle学习笔记的最后个章节了,通过前面七章的学习大家应该对Oracle编程有了一定了了解了吧,这东东如果一段时间不用很快就会忘记了,所以我会把自己学习过的东西做好详细的笔记,用到的时候可以随时查找,马上上手!希望这些笔记能对大家有些帮助! 
    这是第八章的学习笔记,学习完第七章的子程序和包之后</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>