您的位置:首页 > 新闻 > 资讯 > 个人建站如何赚钱_产品网站策划书方案_专业做网站建设的公司_长沙网络营销推广公司

个人建站如何赚钱_产品网站策划书方案_专业做网站建设的公司_长沙网络营销推广公司

2025/3/13 11:15:03 来源:https://blog.csdn.net/qq_43852612/article/details/146184783  浏览:    关键词:个人建站如何赚钱_产品网站策划书方案_专业做网站建设的公司_长沙网络营销推广公司
个人建站如何赚钱_产品网站策划书方案_专业做网站建设的公司_长沙网络营销推广公司

在我看来,写在return里面的内容属于jsx

1、在jsx中可以使用大括号来识别表达式

      大括号里可以写:引起来的字符串

      大括号里可以写:javascript变量

      大括号里可以写:函数调用和方法调用

      大括号里可以写:javascript对象

2、在jsx中实现列表渲染可以使用map方法

const list = [{id:'001',name:'d'},{id:'002',name:'q'},{id:'003',name:'s'}
}<ul>{ list.map(item=> <li key={item.id}>item.name</li>) }
</ul>

3、在jsx中实现条件渲染可以使用逻辑运算符或者三元表达式

对于一些基础的条件渲染:{ true && <h1>dqs</h1> }{ true? <h1>dqs</h1> :<h1>dhj</h1> }对于复杂的条件渲染:let articleType = 6const thisContent = ()=>{if(articleType === 0){return <h1>我是0</h1>}else if(articleType === 1){return <h1>我是1</h1>}else{return <h1>我什么也不是</h1>}
}

4、事件绑定

on + 事件名称 = { 事件处理程序 }const handleClick  = ( e )=>{ }不带参数: onClick = { handleClick }带参数:onClick = { ()=> handleClick("dqs") }带e带参数:onClick = { (e)=> handleClick("dqs" , e) } 

5、react组件

关于组件的声明其实就是一个首字母大写的函数,渲染组件把函数名当成标签来写

//内部存放了组件的逻辑和视图UI
function MainBox (){return ()
}function Main (){return (<Mainbox></Mainbox>)
}

6、react hook 函数

 react hook函数使用规则:

        1、只能在组件中或者其他自定义的hook函数中调用

        2、只能在组件的顶层调用,不能在if for 或者其他函数中

 useState:允许我们向组件添加一个状态变量,从而影响组件渲染的结果。

        注:与普通js不同,状态变量一旦发生变化,视图UI也会跟着变化,数据驱动视图

                useState是一个函数,返回值是一个数组,

                第一个值为状态变量,

                第二个值是用来修改状态变量的函数,用该set函数修改视图才会更新,

                useState的参数将作为状态变量的初始值。

                对于对象类型的变量:

                        let [user , setUser] = useState({name:'Jack'})

                        setUser(
                           {        
                                ...user,
                                name:'dqs'
                            }
                        )

  useRef:主要用于在react中获取/操作dom

        注:const inputRef = useRef(null)

               <input type='text' ref={inputRef} />

               其中inputRef.current可用来获取

  useEffect:用于在react中不是由事件引起,而是由渲染本身引起的操作,例:ajax请求,更改dom

        写法:useEffect(()=>{

                   },[])

                   注:第一个为副作用函数,放置要执行的操作

                          第二个防止依赖项,若为空,则只在渲染完执行一次

                          关于依赖项注解:

                                没有依赖项时,则在初始渲染时和组件更新时执行一次

                                依赖项为空数组时,则仅仅在初始渲染时执行一次

                                添加了特定依赖项,则在初始渲染时和依赖项变化时执行一次

                    清除副作用:

                          清理副作用函数最常见的执行时机是在组件卸载时自动执行

                          return ()=>{    //清除副作用逻辑

                          }

  自定义hook:

        自定义hook是以use打头的函数,通过自定义hook函数可以实现逻辑的封装和复用

7、基础样式控制

行内样式:

        style={ { color:'red' } }

类名控制:

        className='container'

        如果需要动态类名控制:可以选用classnames库

                className={classNames('foot' , {active: type === item.type})}

8、受控表单绑定

对于react input输入框和state数据的双向绑定

let [count , setCount] = useState(1)<input/type='text',value={count}onChange={(e)=>setCount(e.target.value)}
>

9、组件通信

父子通信:

        父传子:传递数据,在子组件标签上绑定属性

                       <Son name={"dqs"}></Son>

                      子组件通过props参数接受数据

                       function Son(props){     

                        }

                        props说明:其中props是一个对象

                                            可传递任意对象:数值 字符串 布尔值 数组 对象 函数 JSX

                                            子组件中只能读取,不能修改

                                            引用的子组件时,标签内部可以写内容,用props.children来接收。

        子传父:在子组件中调用父组件的函数,并携带参数

                        父组件中声明函数,传给子组件,

                        子组件接受并触发,带个参数

兄弟通信:

        1、通过子传父先传给父组件

        2、通过父传子再传给另一个子组件

跨层通信:

        使用context机制来实现跨层通信

        1、使用createContext创建一个上下文对象Ctx, const Ctx = createContext()

        2、在顶层组件通过Ctx.provider组件提供数据 ,

              <Ctx.Provider value={name}></Ctx.Provider>

        3、在底层组件中通过useContext来获取数据

              const value = useContext(Ctx)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com