首页网站jquery网站项目 jquery前端开发实战教程

jquery网站项目 jquery前端开发实战教程

编程之家2026-05-23747次浏览

大家好,今天给各位分享jquery网站项目的一些知识,其中也会对jquery前端开发实战教程进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

jquery网站项目 jquery前端开发实战教程

jQuery的使用方法

使用步骤如下:

1.jQuery给放到一个文件夹里面,方便我们待会引用这个jQuery,这里我就放到我项目的js文件夹里面。

2.然后我们来开始编辑HTML界面代码。

3.使用script标签把jQuery引入到我们的HTML界面。src引号里面的就是我们的jQuery路径名称。

4.接着再书写一个script标签对,里面写上jQuery入口函数,这样,当我们的HTML加载完成之后就会执行我们的jQuery代码

关于jQuery和Vue两者技术架构的比较分析报告

在过去的前端开发中,jQuery几乎会出现在任何大大小小的项目中,不论是类MS,还是电商,还是各类门户网站,都少不了jQuery的身影,可以说在之前的前端开发中,jQuery更是一种“标准”。

jquery网站项目 jquery前端开发实战教程

2008年,V8引擎随 Chrome浏览器横空出世,JavaScript这门通用的 Web脚本语言的执行效率得到质的提升。 V8引擎的出现,注定是 JavaScript发展史上一个光辉的里程碑。它的出现,让当时研究高性能服务器开发、长时间一筹莫展的 Ryan Dahl有了新的、合适的选择,不久,在2009年的柏林的 JSConf大会上,基于 JavaScript的服务端项目 Node.js正式对外发布。Node.js的发布,不仅为开发者带来了一个高性能的服务器,还很大程度上推动了前端的工程化,带来了前端的大繁荣。与此同时,因为 JavaScript执行效率的巨大提升,越来越多的业务逻辑开始在浏览器端实现,前端逻辑越来越重,前端架构随之提上日程。于是,我们谈论的主角,MVVM模式,走进了 Web前端的架构设计中。

MVVM模式,顾名思义即 Model-View-ViewModel模式。它萌芽于2005年微软推出的基于 Windows的用户界面框架 WPF,前端最早的 MVVM框架 knockout在2010年发布。当前最流行了MVVM框架 Vue的2.0版本在2016年5月发布。

一句话总结 Web前端 MVVM:操作数据,就是操作视图,就是操作 DOM(所以无须操作 DOM)。

无须操作 DOM!借助 MVVM框架,开发者只需完成包含声明绑定的视图模板,编写 ViewModel中业务数据变更逻辑,View层则完全实现了自动化。这将极大的降低前端应用的操作复杂度、极大提升应用的开发效率。MVVM最标志性的特性就是数据绑定,MVVM的核心理念就是通过声明式的数据绑定来实现 View层和其他层的分离。完全解耦 View层这种理念,也使得 Web前端的单元测试用例编写变得更容易。

MVVM,说到底还是一种分层架构。它的分层如下:

Model层,对应数据层的域模型,它主要做域模型的同步。通过 Ajax/fetch等 API完成客户端和服务端业务 Model的同步。在层间关系里,它主要用于抽象出 ViewModel中视图的 Model。

jquery网站项目 jquery前端开发实战教程

View层,作为视图模板存在,在 MVVM里,整个 View是一个动态模板。除了定义结构、布局外,它展示的是 ViewModel层的数据和状态。View层不负责处理状态,View层做的是数据绑定的声明、指令的声明、事件绑定的声明。

ViewModel层把 View需要的层数据暴露,并对 View层的数据绑定声明、指令声明、事件绑定声明负责,也就是处理 View层的具体业务逻辑。ViewModel底层会做好绑定属性的监听。当 ViewModel中数据变化,View层会得到更新;而当 View中声明了数据的双向绑定(通常是表单元素),框架也会监听 View层(表单)值的变化。一旦值变化,View层绑定的 ViewModel中的数据也会得到自动更新。

如图所示,在前端 MVVM框架中,往往没有清晰、独立的 Model层。在实际业务开发中,我们通常按 Web Component规范来组件化的开发应用,Model层的域模型往往分散在在一个或几个 Component的 ViewModel层,而 ViewModel层也会引入一些 View层相关的中间状态,目的就是为了更好的为 View层服务。

开发者在 View层的视图模板中声明数据绑定、事件绑定后,在 ViewModel中进行业务逻辑的数据处理。事件触发后,ViewModel中数据变更, View层自动更新。因为 MVVM框架的引入,开发者只需关注业务逻辑、完成数据抽象、聚焦数据,MVVM的视图引擎会帮你搞定 View。因为数据驱动,一切变得更加简单。

不可置否,MVVM框架极大的提升了应用的开发效率。It's amazing!But,MVVM框架到底做了什么?

视图引擎:我是视图引擎,我为 View层作为视图模板提供强力支持,开发者,你们不需要操作 DOM,丢给我来做!

数据存取器:我是数据存取器,我可以通过 Object.defineProperty() API轻松定义,或通过自行封装存取函数的方式曲线完成。我的内部往往封装了发布/订阅模式,以此来完成对数据的监听、数据变更时通知更新。我是数据绑定实现的基础。

组件机制:我是组件机制。有追求的开发者往往希望按照面向未来的组件标准- Web Components的方式开发,我是为了满足你的追求而生。MVVM框架提供组件的定义、继承、生命周期、组件间通信机制,为开发者面向未来开发点亮明灯。

MVVM架构型模式的兴起,实现了前后端真正的职责分离,在提高开发效率的同时,也存在一些不足之处。

可以说前后端分离随着趋势已经形成一种标准,MVVM设计模式的开发框架(Vue)适用任何场景的开发(低版本IE除外)。

jQuery是直接来操作DOM的,凭借简化后的API直接和DOM对话(优异的兼容性);

Vue是直接来操作数据的,拿数据说话。

详解如何使用webpack打包多页jquery项目

虽然已经2019年了

不过有一些项目

还是需要用到jquery的

不过考虑到使用jquery的一堆兼容性问题

也为了可以顺利地使用ES6来撸代码

研究使用webpack+babel打包代码来发布

几个重点:

1.为了将模块分割加载,不至于一个js文件过大,一个页面中使用多个js文件

2.由于是多页项目(多个html),每个页面使用的js文件都不一致

基于以上两点,需要配置多个入口文件

3.会把小图片转换成base64,所以可能css转成的js文件会比较大,所以css文件都单独设置入口js

例如,我们有三个页面:index、share、assist

三个页面有通用的css文件:common.css

设置入口文件时,可以这样设置

entry:{

//通用css

commoncss: path.resolve(__dirname,'./src/css/common.css.js'),

//主页

indexcss: path.resolve(__dirname,'./src/css/index.css.js'),

index: path.resolve(__dirname,'./src/index.js'),

//页1

sharecss: path.resolve(__dirname,'./src/css/share.css.js'),

share: path.resolve(__dirname,'./src/share.js'),

//页2

assistcss: path.resolve(__dirname,'./src/css/assist.css.js'),

assist: path.resolve(__dirname,'./src/assist.js'),

}

其中,common.css.js文件中,只有几行代码

import'../css/base.css';

import'../css/plugin.css';

import'../css/common.css';

common.css.js文件结束

由于会有一些图片的base64,所以大小大约100+KB

类似的还有index.css.js和share.css.js和assist.css.js

index.css.js如下

import'../css/index.css';

对,就一句话

打包出来的js文件大小就看引入了多少小图片了,一般几百KB

然后,要使用三个webpack的插件

const HtmlWebpackPlugin= require('html-webpack-plugin');

const CopyWebpackPlugin= require('copy-webpack-plugin');

const jquery= require('jquery');

HtmlWebpackPlugin用于打包出多个html文件

CopyWebpackPlugin用于img标签,后面说

jquery就是jquery,全局引用

webpack.config.js里的plugins配置如下

plugins: [

new webpack.ProvidePlugin({

$:"jquery"

}),

new CopyWebpackPlugin([{

from: __dirname+'/src/public/'

}]),//吧src下public文件夹下的所有内容直接拷贝到dist(输出目录)下

new HtmlWebpackPlugin({

filename:'index.htm',

template:'src/index.html',

chunks: ['commoncss','indexcss','index'],

inject:'true',

hash: true,

}),

new HtmlWebpackPlugin({

filename:'share.htm',

template:'src/share.html',

chunks: ['commoncss','sharecss','share'],

inject:'true',

hash: true,

}),

new HtmlWebpackPlugin({

filename:'assist.htm',

template:'src/assist.html',

chunks: ['commoncss','assistcss','assist'],

inject:'true',

hash: true,

})

]

src目录下的文件如下

index.js assist.js share.js是三个文件分别的入口文件

index.html assist.html share.html是三个文件的模板,html代码可以写在这里(当然想用模板文件也是可以的,只要HtmlWebpackPlugin插件支持)

dist文件夹如下

(为什么是htm而不是html,是为了便于读者区分模板文件和输出文件)

我们知道,webpack打包不会打包HtmlWebpackPlugin的template里的img标签下的图片,所以在html里使用了img标签的图片都要放在public文件夹下,CopyWebpackPlugin这个组件会直接把图片复制过去

关于HtmlWebpackPlugin的具体参数的细则可以上网搜一下,很多这方面的内容

其他的比如loader、babel不在这篇文章想说的重点之列,不赘述

最后,附上webpack.config.js文件

let actName='yourProjectName';//

let actKV={

name: actName,

entry:{

//通用css

commoncss: path.resolve(__dirname,'./src/css/common.css.js'),

//主页

indexcss: path.resolve(__dirname,'./src/css/index.css.js'),

index: path.resolve(__dirname,'./src/index.js'),

//分享页1

sharecss: path.resolve(__dirname,'./src/css/share.css.js'),

share: path.resolve(__dirname,'./src/share.js'),

//分享页2

assistcss: path.resolve(__dirname,'./src/css/assist.css.js'),

assist: path.resolve(__dirname,'./src/assist.js'),

}

};

return{

entry: actKV.entry,

target:"web",

output:{

path: path.resolve(__dirname+'/dist/'+actName),

// publicPath:'.\\',

filename:'js/[name].js',

// chunkFilename:"[name].chunk.[hash].js",

},

plugins: [

new webpack.ProvidePlugin({

$:"jquery"

}),

new CopyWebpackPlugin([{

from: __dirname+'/src/public/'

}]),

new HtmlWebpackPlugin({

filename:'index.htm',

template:'src/index.html',

chunks: ['commoncss','indexcss','index'],

inject:'true',

hash: true,

}),

new HtmlWebpackPlugin({

filename:'share.htm',

template:'src/share.html',

chunks: ['commoncss','sharecss','share'],

inject:'true',

hash: true,

}),

new HtmlWebpackPlugin({

filename:'assist.htm',

template:'src/assist.html',

chunks: ['commoncss','assistcss','assist'],

inject:'true',

hash: true,

})

],

mode:'development',

node:{

__filename: true,

__dirname: true

},

devtool: isProduction?'source-map':'inline-source-map',

devServer:{

inline: true,

open: true,

historyApiFallback: true,

// host: ip.address(),

host:'localhost',

progress: true,

contentBase:"./dist/",

port: 3430,

historyApiFallback:true,

publicPath:'/src/',

proxy:{

'*':{

target:'',

secure: false

}

},

},

resolve:{

alias:{

},

extensions: ['.js','.less','.css','.vue','.jsx'],

},

externals:{

},

module:{

rules: [{

test:/\.vue$/,

loader:'vue-loader',

},{

test:/\.js$/,

include: path.join(__dirname,'/src'),

exclude: path.resolve(__dirname,'node_modules'),

use:[

{

loader:'babel-loader',

query:{

presets: ['es2015']

}

}

]

},{

test:/\.xml$/,

loader:"xml-loader"

},{

test:/\.(css|less)$/,

loader:"style-loader!css-loader",

},

{

test:/\.(png|jpg|jpeg|gif|icon|webp)$/,

loader:'url-loader',

options:{

limit: 16384,

name:'images/[name].[hash:5].[ext]',

}

},

{

test:/\.(woff|woff2|svg|eot|ttf)\??.*$/,

loader:"file-loader?&name=assets/fonts/[name].[ext]"

},{

test:/\.txt$/,

loader:"text-loader"

},{

test:/\.jsx$/,

exclude:/node_modules/,

loaders: ['jsx-loader','babel-loader']

}]

},

}

文章到此结束,如果本次分享的jquery网站项目和jquery前端开发实战教程的问题解决了您的问题,那么我们由衷的感到高兴!

登陆注册网站源码下载,账号注册登录立即注册str函数的用法,Python的str函数的应用