当前位置: 首页 > wzjs >正文

建设一个类似淘宝的网站手机版网站怎么上传

建设一个类似淘宝的网站,手机版网站怎么上传,高明区做网站,网站建设与管理pptReact由Meta公司研发,是一个用于 构建Web和原生交互界面的库 搭建开发环境 create-react-app是一个快速 创建React开发环境的工具,底层由Webpack构建,封装了配置细节,开箱即用 //执行命令: npx create-react-app reac…

React由Meta公司研发,是一个用于 构建Web和原生交互界面的库

搭建开发环境

create-react-app是一个快速 创建React开发环境的工具,底层由Webpack构建,封装了配置细节,开箱即用

//执行命令:
npx create-react-app react-basic
npx Node.js    //工具命令,查找并执行后续的包命令
create-react-app     //核心包(固定写法),用于创建React项目
react-basic React 项目的名称 //(可以自定义)

创建React项目的更多方式

启动一个新的 React 项目 – React 中文文档https://zh-hans.react.dev/learn/start-a-new-react-project 先安装node.js

不同系统不同版本有差异,可以用新版的比较好

安装过程就看你对自己环境的熟悉程度了

去某猴上找了篇文章问了问豆包安完了:

哈哈气笑了。

终于解决了。

密码的react你要几把干啥???

又有问题了。。。。。

又解决了,已经有心理阴影了 别管了

之前不是使用的 create-react-app吗,然后提示我是依赖解析冲突了

豆包给出的解决方案(为什么不用deepseek呢?呵呵呵因为它很忙呵呵):

 

 

 

方法一是当没看见问题,我最怕潜在的bug了会不知道什么时候给我一脚

方法二需要更多的经验和技术,但由于本人只具备了信息检索能力以及已经和这个包鏖战许久了,否决

方法三直接把问题逃避换一种思路最喜欢了

然后我就用vite了

 

但是还没学感觉差也差不多。。。

 

我目前的理解就是需要一个工具去使用react而课程讲的是create-react-app而我换了一种新工具Vite

还不太会用我再看看

但是创建成功了也来看看吧,首先是package.json里面两个核心的包:

"dependencies": {"react": "^19.0.0","react-dom": "^19.0.0"},

 这是一些可执行的命令:

"scripts": {"dev": "vite","build": "vite build","lint": "eslint .","preview": "vite preview"},

build是打包时候执行的命令

 我们就关注核心的依赖 和命令就好了

而src是源码目录,我们的工作一般都在这里进行

但是他说最重要的两个东西和Vite里面的不同。

重要的是index.js和App.js

他把index.js修改成了只剩五行:

import React from 'react';
import ReactDOM from 'react-dom/client';import App from './App';const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);

 把App.js修改成了这样:

function App() {return (<div className="App">this is App</div>);
}export default App;

 解释一下:

//项目入口 从这开始运行
//核心包
import React from 'react';
import ReactDOM from 'react-dom/client';//导入根组件
import App from './App';//把App根组件渲染到id为root的dom节点上
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);

 JSX基础

概念和本质

JSX是JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模版结构,它是React中编写 UI模版的方式

优势: 1. HTML的声明式模版写法 2. JS的可编程能力

JSX并不是标准的JS语法,它是JS的语法扩展,浏览器本身不能识别,需要通过解析工具做解析之后才能 在浏览器中运行

识别js表达式

在JSX中可以通过 大括号语法{} 识别 JavaScript中的表达式,比如常见的变量、函数调用、方法调用等等

1. 使用引号传递字符串

2. 使用JavaScript变量

3. 函数调用和方法调用

4. 使用JavaScript对象

 呵呵试了一下发现又可以使用了,使用方法就是进入项目目录,然后npm start

好了现在彻底卡住了又连不上了

//项目的根组件
//App -> index.js -> public/index.html(root)
const count =100
function getName(){return 'jack'
}
function App() {return (<div className="App">this is App{'this is message'}{count}{getName()}{new Date().getDate()}<div style={{color: 'red'}}>this is div</div></div>);
}export default App;

事实证明上面四种确实可行

注意:if语句、switch语句、变量声明属于语句,不是表达式,不能出现在{}中

 

实现列表渲染

在JSX中可以使用原生JS中的map方法遍历渲染列表

key是react规定的渲染性能的一个属性

通常会加上一个独一无二的key,使用字符串或者number id

key的作用是react框架内部使用 提升更新性能

实现基础条件渲染

语法:在React中,可以通过逻辑与运算符&&、三元表达式(?:)实现基础的条件渲染

实现复杂条件渲染

需求:列表中需要根据文章状态适配三种情况,单图,三图,和无图三种模式

解决方案:自定义函数 + if判断语句

事件绑定

语法:on + 事件名称 = { 事件处理程序 },整体上遵循驼峰命名法

使用事件对象参数语法:在事件回调函数中设置形参e

怎么传递自定义参数呢?

语法:事件绑定的位置改造成箭头函数的写法,在执行clickHandler实际处理业务函数的时候传递实参

function App() {// const handleClick = ()=>{//   console.log("button被点击了")// }// return(//   <div className="App">//     <button onClick={handleClick}>click me</button>//   </div>// )//传递自定义参数const handleClick = (name)=>{console.log('button被点击了',name)}return(<div><button onClick={()=>{handleClick('jack')}}>click me</button></div>)
}
export default App;

注意:不能直接写函数调用,这里事件绑定需要一个函数引用

同时传递事件对象和自定义参数:在事件绑定的位置传递事件实参e和自定义参数,clickHandler中声明形参,注意顺序对应

function App() {// const handleClick = ()=>{//   console.log("button被点击了")// }// return(//   <div className="App">//     <button onClick={handleClick}>click me</button>//   </div>// )//传递自定义参数const handleClick = (name,e)=>{console.log('button被点击了',name,e)}return(<div className="App"><button onClick={(e)=>{handleClick('jack',e)}}>click me</button></div>)
}
export default App;

React组件基本使用

 概念:一个组件就是用户界面的一部分,它可以有自己的逻辑和外观,组件之间可以互相嵌套,也可以复用多次

 组件化开发可以让开发者像搭积木一样构建一个完整的庞大的应用

就像是换装小游戏。。。

4399上现在也有防沉迷了。。而且很多的H5换装小游戏都要看广告,,,给我一种永远回不去的感觉,,,

在React中,一个组件就是首字母大写的函数,内部存放了组件的逻辑和视图UI, 渲染组件只需要把组件当成标签书写 即可

function Button(){return <button>click me</button>
}
function App() {return (<div>{/*自闭和*/}<Button />{/*成对标签*/}<Button></Button></div>)
}
export default App;

就是先定义后使用

 useState

useState 是一个 React Hook(函数),它允许我们向组件添加一个状态变量, 从而控制影响组件的渲染结果

本质:和普通JS变量不同的是,状态变量一旦发生变化组件的视图UI也会跟着变化(数据驱动视图)

import {useState} from 'react'
function App() {//setCount修改变量的方法const [count,setCount] = useState(0)//点击事件回调const handleClick = ()=>{//用传入的新值修改count//使用新的count渲染UIsetCount(count + 1)}return(<div><button onClick={handleClick}>{count}</button></div>)
} 
export default App;

 修改状态的规则

状态不可变:在React中,状态被认为是只读的,我们应该始终替换它而不是修改它,直接修改状态不能引发视图更新

修改对象状态:对于对象类型的状态变量,应该始终传给set方法一个全新的对象来进行修改

直接修改原对象,不引发视图变化,调用set传入新对象用于修改

import {useState} from 'react'
function App() {//setCount修改变量的方法let [count,setCount] = useState(0)//点击事件回调const handleClick = ()=>{//用传入的新值修改count//使用新的count渲染UIsetCount(count + 1)}const [form,setForm] = useState({name:'jack'})const changeForm=()=>{//错误写法:直接修改setForm({...form,name:'john'})}return(<div><button onClick={handleClick}>{count}</button><button onClick={changeForm}>修改form{form.name}</button></div>)
} 
export default App;

组件样式处理

1. 行内样式(不推荐)

2. class类名控制

 案例:B站评论

要实现的各种功能:

1. 渲染评论列表

2. 删除评论实现

3. 渲染导航Tab和高亮实现

4. 评论列表排序功能实现

渲染评论列表

1. 使用useState维护评论列表

2. 使用map方法对列表数据进行遍历渲染(别忘了加key)

实现评论删除

1. 删除显示 - 条件渲染

2. 删除功能 - 拿到当前项id以id为条件对评论列表做filter过滤

微艾斯扣的老子惹你没?

 渲染Tab+点击高亮实现

 需求: 点击哪个tab项,哪个做高亮处理

核心思路: 点击谁就把谁的type(独一无二的标识)记录下来,然后和遍历时的每一项的type做匹配,谁匹配到就设置负责高亮的类名

classnames优化类名控制

classnames是一个简单的JS库,可以非常方便的通过条件动态控制class类名的显示

安装:

npm install classnames

改写之后:


文章转载自:

http://LyqJtJdc.nqyzg.cn
http://h0Ux6jtz.nqyzg.cn
http://oD6xq6X4.nqyzg.cn
http://m4D3JeYl.nqyzg.cn
http://fz8ZylOl.nqyzg.cn
http://ccpgAOUA.nqyzg.cn
http://wIpw47qB.nqyzg.cn
http://Tf7jkklZ.nqyzg.cn
http://VO6473yX.nqyzg.cn
http://ChDX7SQd.nqyzg.cn
http://mHFdnbQ4.nqyzg.cn
http://oIm8mW9l.nqyzg.cn
http://JkAj6TP1.nqyzg.cn
http://AWoRxaeK.nqyzg.cn
http://3MBXEbYK.nqyzg.cn
http://NYZMGjmF.nqyzg.cn
http://xnz2B7Oa.nqyzg.cn
http://wfDDfANY.nqyzg.cn
http://VoGjPvwd.nqyzg.cn
http://mOlPnMXj.nqyzg.cn
http://sy4Kq3UI.nqyzg.cn
http://kvcLvzlm.nqyzg.cn
http://aydMITFy.nqyzg.cn
http://I5lsiXe7.nqyzg.cn
http://4RrdAGgE.nqyzg.cn
http://qQBg9cin.nqyzg.cn
http://9jSnYNgt.nqyzg.cn
http://aLLoCxp7.nqyzg.cn
http://C2PfsqMB.nqyzg.cn
http://54k2KakE.nqyzg.cn
http://www.dtcms.com/wzjs/739384.html

相关文章:

  • 如何建外贸网站广东省城乡建设厅投诉网站
  • 电脑网站打不开是什么原因造成的九江建设网站公司
  • 网站定制开发需要什么资质什么网站做外贸好
  • 做一百度网站吗数据分析师岗位要求
  • 网站做视频网站wordpress文章页面更新不出来
  • 部门网站建设意见可以做推广的平台
  • 厚街外贸网站建设wordpress模板和主题
  • 网站icp备案信息不能为空菏泽网站建设电话咨询
  • 邯郸网站建设的地方知更鸟免费 wordpress
  • vuejs 网站开发昭阳区建设局网站
  • 沙漠网站建设很多网站的导航条都设置为7到9
  • 如何搭建自己的网站服务器wordpress界面主题
  • 泰安高级网站建设推广南海区住房城乡建设和水务局网站
  • 深圳微信分销网站建设江浙区域网络公司排名
  • 网站设计开发方案网站维护服务
  • 电商网站建设技术交流问题金融街做网站的公司
  • 宝塔面板做网站绑定域名广州市民网页官网
  • 谈网站建设问的几个问题查询公司的网站备案信息查询
  • 网站 关于我们 模板百度一下浏览器下载安装
  • 昆明驿站网站建设网站开发ui
  • 宁波建设监理协会网站团购网站大全
  • 网站吗那个网站做直播好
  • 广告网站建设设计电脑上如何做网站宣传
  • 瓷器网站源码泰州市做网站
  • 哈密建设集团有限责任公司网站做兼职在什么网站上找
  • 山东省济宁市嘉祥县建设局网站漳州网站设计制作
  • 企业网站建设联系2022最新新闻大事件
  • 江象网站建设炒股配资网站建设
  • 赣州酒店网站建设关键词挖掘站长工具
  • 南通江苏网站建设wordpress for ios