vue制作一个简单的网站(vue搭建网站)
用vue开发网页效果
本地应用:
指令v-text的作用是:设置标签的内容
默认写法会替换全部内容,使用插值表达式{{}}可以替换指定内容
部分替换使用两个大括号写法
v-html指令:作用是设置元素的innerHTML
内容中有html结果会被解析为标签;v-text不论内容是什么,只会解析为文本
解析文本用v-text,解析html结构用v-html
v-on指令:事物绑定的方法写成函数调用的形式,可以传入自定义参数
定义方法时需要定义形参来接受传入的实参
时间的后面跟上【.修饰符】可以对事物进行限制
.enter可以限制触发的按键为回车
时间修饰符有多种
计数器的步骤:
1.在data中定义数据num;
2.methods中添加两个方法add和sub
3.使用v-text给num设置span标签
4.使用v-on将add,sub绑定给+、-按钮
5.add逻辑小于10继续累加,否则alert
6.sub逻辑大于0继续递减,否则alert
创建Vue示例时,el(挂载点),data(数据),methods(方法)
v-on指令的作用是绑定事物,简写为@
方法中通过this,关键字获取data中的数据
v-text设置文本值,简写{{}}
v-show指令的作用是:根据真假切换元素的显示状态
原理是撰改元素的display,实现显示和隐藏
指令后面的内容,最终都会解析为布尔值
值为true元素显示,值为false元素隐藏
v-if指令的作用是:根据真假切换元素的显示状态
本质是通过操纵dom元素来切换显示状态
表达式的值为true,元素存在于dom树中,为false,从dom树中移除
v-bind指令的作用是:为元素绑定属性
完整写法是v-bind:属性名
简写的话可直接省略v-bind,只保留【:属性名】
需要动态的增删class建议使用对象的方式
v-for指令的作用是:根据数据生成列表结构
数组常常和v-for结合使用
语法是(item,index)in数据
item和index可结合其他指令一起使用
数组长度的更新会同步到页面上,是响应式的
v-model指令的作用是便捷的设置和获取表单元素的值
绑定的数据和表单元素值相关联
绑定的数据双向绑定表单元素的值
网络应用
VuePress-Vue驱动的静态网站生成器入门教程
VuePress由两部分组成:第一小部分是一个极简静态网站生成器(opensnewwindow),它包含由Vue驱动的主题系统和插件API,另外一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持Vue及其子项目的文档需求。
每一个由VuePress生成的页面都带有预渲染好的HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue将接管这些静态内容,并将其转换成一个完整的单页应用(SPA),其他的页面则会只在网民阅读到的时候才按需加载。
本质上,一个VuePress网站是一个由Vue、VueRouter和webpack驱动的单页应用。如果你以前使用过Vue的话,当你在开发一个自定义主题的时候,你会感受到非常熟悉的开发体验,你甚至可使用VueDevTools去调试你的自定义主题。
在构建时,我们会为应用创建一个服务端渲染(SSR)的版本,然后通过虚拟访问每一条路径来渲染对应的HTML。这种做法的灵感来源于Nuxt(opensnewwindow)的nuxtgenerate命令,以及其他的一些项目,例如Gatsby
1、创建并进入一个新目录
2、使用你喜欢的包管理器进行初始化
3、将VuePress安装为本地依赖
我们已经不再推荐全局安装VuePress
4、创建你的第一篇文档
5、在package.json中添加一些scripts
这一步骤是可选的,但我们推荐你完成它。在下文中,我们会默认这些scripts已经被添加。
6、在本地启动服务器
VuePress会在(opensnewwindow)启动一个热重载的开发服务器。
现在,你应该已经有了一个简单可用的VuePress文档。接下来,了解一下推荐的目录结构和VuePress中的基本配置。
VuePress遵循“约定优于配置”的原则,推荐的目录结构如下:
如果没有任何配置,这一个网站将会是非常局限的,网民也无法在你的网站上自由导航。为了更加好地自定义你的网站,让我们首先在你的文档目录下创建一个.vuepress目录,所有VuePress相关的文件都将会被放在这里。你的项目结构可能是这样:
一个VuePress网站必要的配置文件是.vuepress/config.js,它应该导出一个JavaScript对象:
对于上面的配置,如果你运行起devserver,你应该可以看到一个页面,它包含一个页头,里面包含一个标题和一个搜索框。VuePress内置了基于headers的搜索——它会自动为所有页面的标题、h2和h3构建拟一个简单的搜索索引。
你也可使用YAML(.vuepress/config.yml)或是TOML(.vuepress/config.toml)格式的配置文件。
一个VuePress主题应该负责整个网站的布局和交互细节。在VuePress中,如今自带了一个默认的主题(正是你现在所看到的),它是为技术文档而设计的。同时,默认主题提供了一些选项,让你可以去自定义导航栏(navbar)、侧边栏(sidebar)和首页(homepage)等,
由于VuePress是一个标准的Vue应用,你可以通过创建一个.vuepress/enhanceApp.js文件来做一些应用级别的配置,当该文件存在的时候,会被导入到应用内部。enhanceApp.js应该exportdefault一个钩子函数,并接受一个包含了一些应用级别属性的对象作为参数。你可使用这一个钩子来安装一些附加的Vue插件、注册全局组件,或增加额外的路由钩子等:
觉得效果不错的请帮忙加个关注点个赞,常常分享前端实用开发技巧
准备用vue写个小项目,使用axios调用api做一个网站,还需要哪些技术?
看你自己的需要咯,
例如前端的跟vue搭配一起的,有vue-router(路由,这一个就不解释了),vuex(全局变量,也不详细解释了)。可能还有框架?例如element-ui,或vuetify这样的。
后端的话如果用node的就有express,koa这样的。而后端的,可能还涉及到一些数据的存储之类的,又会涉及到一个数据库的插件,例如ORM,NEDB这样的。
第二章:用element、flask、vue开发一个数据加密网站
在本章中,我们能学到:
公众号《帅帅的Python》回复《数据加密》获取源码
我们在互联网上搜索md5加密,会出来很多的网站,但是都是关于单个字符的的加密,其中加密算法有md5和sha加密。但是当我有1万条数据,如何加密,总不能一条一条的将过去的经验作为踏板加密,这很不现实。
小凡决定先参考这些网站做一个简单的字符串加密网站,然后再做关于Excel文件的加密网站。
我们看这些网站都是由两个输入框,中间加上选项组成的,例如下面这种:
我们可以用element中的组件绘制出这样的页面:
绘制输入字符串的文本框:
同理,我们可以绘制出加密后的文本框:
form表单:
下拉框,选择加密的方式:
单选框:
按钮:
后端我们用flask写一个接口,这一个接口就是用来将前端输入的字符串发送给加密的函数,我们需要开发一个地址,使用POST方法,并且接受传递的参数。
启动后端服务,即可访问到网站。
小凡不满足于只能加密字符串,接下来,小凡要思考如何加密Excel文件?
Primary:Vue{三、一个基于Vue的门户网站(经验踩坑)}
使用框架时必须熟知框架指令特性!非常重要;
Bootstrap+jQuery是很好的选择!
库:?1.i18n(双语言切换);
?2.vue-router(路由);
?3.vuex(状态管理,需要进行双语言切换监听变化);
?4.ElementUI(饿了么以电脑端为主得UI框架);
?5.sass(css预处理);
?6.echarts(需要K线图,个人推荐不要使用echarts,太大);
?7.axios(相较于fetch兼容性好,请求数据)
IE的坑:1.走马灯之前用的是swiper的,结果兼容性不好,4.0+兼容不好,3.0主要以移动端为主,
之后换成了ElementUI的走马灯又引导出无法覆盖ElementUI的样式,因为VUE是默认全局覆盖局部,再加一个style,不要加scoped,ElementUI是全局引入!?解决问题。
2.经验不足,IE9不支持flex,坑、坑、坑移动端写习惯了!
3.多行文本省略只支持webkit内核阅读器,又是坑,用js控制长度搞定!
4.低版本兼容引入babel-polyfill,将build?webpack.base.conf.js里entry撰改为entry:{'babel-polyfill':'babel-polyfill',app:'./src/main.js'},
5.使用axios低版本兼容?es6-promise包,在main.js里引用
importpromisefrom'es6-promise'
promise.polyfill()
打包:1.history模式:需要服务器端配置请看官网;不需要改任何东西,路由里加mode:history即可
2.hash模式:将config里index.js里的assetsPublicPath:'/'改为assetsPublicPath:'./',即可访问静态资源;
3.打包体积:将config里index.js里的productionSourceMap:true,改为?productionSourceMap:false,或待打包完之后手动删除Map文件;
4.路由懒加载(具体看官网很简单);
5.第三方包分离将build?webpack.base.conf.js里添加
externals:{;
'echarts':"echarts"
?},
6.打包后css背景图无法访问,将buildutils.js里添加?publicPath:'../../',
7.sass配置(webpack.base.conf.js)
{test:/\.scss$/,loaders:["style","css","sass"]},
如果有写错的地方欢迎大家评论
web前端开之网站搭建框架之vue详解
网站搭建框架之vue
Vue是web前端快速搭建网站的框架之一。它与jQuery有所不一样,是以数据驱动web界面(以操作数据改变页面,而jQuery是以操作节点来改变页面),同时,vue还实现了数据的双向绑定,可及时响应网民的输入。最重点是vue的写法简单,容易掌握,组件形式可以大大提高工作效率。
对于vue的使用可以分为两种使用形式:1.引入vue.js文件,在js中将vue实例化;2.通过node安装第三方包--vue,搭建脚手架,用脚手架将页面分成几个组件编写,从此利用组件来搭建页面。
引入vue.js的写法
Vue分为V层(视图层)和M层(数据层),一般都是由M层的数据来驱动V层的改变。而vue的常使用指令数量不多且写法简单。常使用的有v-html、v-text、v-show、v-if、v-else、v-for、v-bind:、v-model。v-html和v-text都是将数据写进标签内,但它们的不一样之处在于v-text会将标签当做文本内容写入
,而v-html则会对标签进行编译,只显示标签内的内容。
至于v-show、v-if、v-else这三个指令都是通过布尔值的判断来执行的,当布尔值为真时,设置了v-show、v-if指令的标签会显示出来,当布尔值为假时,标签隐藏;而v-else与这两个指令相反。除了这一个之外,v-show和v-if、v-else之间也有差别,v-show是改变标签的display属性来使标签显示或隐藏;而v-if、v-else是通过添加或删除节点,来显示或隐藏标签的。
V-for是vue的一种遍历方法,这一个方法极大的简化了数组或对象的遍历并显示到页面的步骤
而v-bind:是对html属性或自定义属性的数据驱动方式,格式为v-bind:href,可简写为:href。对于类(class)的操作是通过布尔值来判断增加或隐藏类,同时。类和样式(style)所接受的数据类型为对象。
V-model指令的作用是将数据进行双向绑定,仅限于输入类型标签。当网民在页面输入时,数据层的数据会跟着改变。这是VM模式。由v驱动m。
除了这些普通的指令之外,还有事物指令v-on:,可简写为@+事物名,例如:@click,并将执行函数写到vue的methods中
通过脚手架来写项目的话,可用通过写组件,再将组件引入(注册)到另外一个vue文件里拼接在一起,从此构建出一个页面。
(组件书写格式)
(组件整合)
(注册路由)
路由是通过vue-router来实现的,在注册路由的时候要将router实例化。不一样的路由跳转不一样的页面,这是搭建单页面应用的优势。
而父组件与子组件之间的通讯可以通过props将父组件的信息传递给子组件,改变子组件的内容,这样子组件的复用就不会有障碍了,而子组件传递信息给父组件或其它组件的通讯则需vuex。
通过引入vuex并实例化一个Vuex.Store作一个公共平台,将数据进行传输。通过vue的computed方法接收数据,通过methods方法改变数据。而这一个公用平台可实现组件与组件之间的信息传递,从此实现组件之间的交互。
通过一个星期的实战,深深的体会到了vue的优势,在构建移动端这方面的效率很高。但在搭建的过程中,还是少不了与jQuery结合,毕竟每个工具都有其优点,择其优而用是明智的选择。
2024 Vue 生态工具推荐
在进行新项目的启动时,特别是在没有任何限制的情况下,从零开始构建应用程序也许会让人既兴奋又头疼。面对大量的工具和框架,研究和评估这些工具也许会消耗大量时间,最终导致留意力从实际工作上转移。选择工具时的“选择悖论”现象意味着即使做出了非常好的选择,仍然会考虑备选方案。本文旨在推荐在 Vue生态系统中广泛使用的行业标准工具,帮助开发者们节省时间与精力,提高工作效率。
首先,谈到包管理器,通常有三种流行选择:npm、yarn和 pnpm。尽管 npm是历史悠久且广泛使用,但速度和性能上不如 yarn和 pnpm。yarn以其可靠性和性能受到青睐,而 pnpm以其快速的性能和节省空间的能力脱颖而出。它在每段代码中使用最小的副本,并且支持具有最少配置的 monorepo设置,这是 pnpm的独特优势。
构建工具方面,Vite成为了一个热门选择。它利用原生 ES模块,实现快速的服务器启动,并且支持热模块替换,通过 Rollup进行优化以产生既小且快速的加载打包。Vite的配置相对简单,同时由于其与框架无关的特点,获得了额外的加分。
对于 Vue版本的选择,Vue 2在搜索引擎和 Stackoverflow中依然占有一席之地。然而,Vue 3现在作为长期支持版本,提供了一种利用组合式 API的新语法,具有所有先前版本的优点。因此,强烈建议优先选择 Vue 3。
SFC(单文件组件)是 Vue的一大特色,将组件的模板、样式和脚本保留在同一个文件中。如果组件变得太过复杂,将其拆分为子组件是一个明智的选择。使用不一样的文件为每个部分提供支持是可以的,但应该尽可能避免组件太过庞大。
Vue Router是官方推荐的路由模块,与 Vue内核深度集成,为构建单页应用程序(SPA)提供了简便的途径。其功能包括嵌套和动态路由、模块化组件配置、路由参数、过渡效果、自动活动 CSS类链接、HTML5 history模式或哈希模式,以及可自定义的滚动行为。由于缺乏替代品,Vue Router得以保持其地位,成为构建 SPA的强大工具。
状态管理方面,Pinia作为替代 Vuex的新选择,与 Vue 3的组合式 API架构无缝集成,具有较小的占用空间、增强的性能和开发工具支持。尽管 Pinia可使用自定义组合式函数保存状态,但对于小型应用来说,优先使用 Pinia是更推荐的做法。
数据请求方面,原生 fetch已获得重要阅读器支持,被视为与流行的 axios库竞争的替代品。VueUse提供了带有高级配置选项的 useFetch钩子。然而,强烈推荐使用 Vue Query,它使用声明性语法简化数据请求,优雅地处理重复任务,如加载、错误状态、分页、过滤、排序和缓存。
在组件文档方面,Storybook占据主导地位,但是不是值得大肆宣传仍有待讨论。就个人而言,使用 Storybook来单独开发组件可提高速度,了解组件依赖,并可能作为一种文档形式。然而,是不是选择 Storybook取决于个人喜好和需求。
测试方面,Jest是在单元测试、端到端(e2e)测试和可视化测试中推荐的测试运行器。Vitest是一个由 Vite驱动的测试运行器,具有与 Jest兼容的语法,得到广泛支持。对于端到端测试,Cypress是人气最高且在稳定性和消除不稳定方面投入大量精力的选项。在可视化测试中,Applitools值得考虑,尽管在多使网民环境中可能存在问题。
UI框架的选择上,shadcn-vue和 radix-vue是在 Vue世界中的推荐选项,它们构建在 radix-vue之上,而非立即安装和使用的库。它们需要与项目风格指南相适应,这种自定义的实现被认为是一件好事。
静态类型方面,TypeScript(TS)是推荐选择,尽管它可能存在被滥用的风险。正确使用 TS可增强代码可读性和维护性,推荐批评性思维和使用 TSLint。
在集成开发环境(IDE)方面,IntelliJ和 VSCode是两大热门选择。IntelliJ虽然不是免费的,但 Vue支持开箱即用,而 VSCode是免费且开源的,需要额外配置。如果选择 VSCode,保证安装 Volar和 TypeScript Vue Plugin(Volar)以提高开发体验。
最后,Swagger是人气最高的 API文档选择,基于 OpenAPI规范,易于与其他开发者共享。这是一个成熟且得到良好支持的项目,背后有一个庞大的社区。
本文提供的建议是基于个人经验,旨在帮助开发者在使用 Vue构建可扩展应用程序时节省时间与精力。在选工具时,通常坚持行业标准可与其他工具产生协同作用,并且广泛使用的工具在 StackOverflow上寻找帮助变得更加容易。偏离标准也许会导致更加多的问题,因此在追求创新时应保持谨慎。