后端渲染模型:在服务器端完成渲染(用户输入 URL 发起请求 → 服务器返回 “带数据的完整 HTML 页面”)。典型技术栈:Java+JSP/Thymeleaf、PHP+Smarty、Node.js+Express+EJS。
前端渲染模型:在浏览器端完成渲染(用户输入 URL 发起请求 → 服务器仅返回无数据的静态 HTML 框架(含 CSS/JS),页面渲染、数据拼接由浏览器端的 JS完成)。典型技术栈:Vue/React/Angular + 后端 API(如 Spring Boot/Node.js)
script部分
export default对象的属性:
name:组件的名称components:存储<template>中用到的所有组件props:存储父组件传递给子组件的数据watch():当某个数据发生变化时触发computed:动态计算某个数据-
setup(props, context):初始化变量、函数:ref定义变量,可以用.value属性重新赋值reactiv定义对象,不可重新赋值props存储父组件传递过来的数据context.emit():触发父组件绑定的函数(Vue 中父子组件通信的核心方式:父传子用 props(:xxx),子传父用事件(@xxx))
template部分
<slot></slot>:可以动态填充内容
v-on:或@属性:绑定事件
v-bind:或::绑定属性
v-if、v-else、v-else-if属性:判断
v-for属性:循环,:key:循环的每个元素需要有唯一的key
v-model:双向绑定,实现表单元素与数据双向绑定
style部分
<style></style>标签添加scoped属性后,不同组件间的css不会相互影响
第三方组件
view-router包:实现路由功能
vuex:存储全局状态,全局唯一:
state:存储所有数据,可以用modules属性划分成若干模块getters:根据state中的值计算新的值mutations:所有对state的修改操作都需要定义在这里,不支持异步,可以通过$store.commit()触发actions:定义对state的复杂修改操作,支持异步,可以通过$store.dispatch()触发。注意不能直接修改state,只能通过mutations修改statemodules:定义state的子模块