# 项目结构

my-vue-project/
├── node_modules/       # 项目依赖包
├── public/             # 静态资源目录
│   ├── favicon.ico     # 网站图标
│   └── index.html      # 主HTML文件
├── src/                # 项目源代码目录
│   ├── assets/         # 静态资源(图片、字体等)
│   ├── components/     # Vue组件
│   ├── router/         # 路由配置(如果选择了vue-router)
│   ├── store/          # Vuex状态管理(如果选择了vuex)
│   ├── views/          # 页面级组件
│   ├── App.vue         # 根组件
│   └── main.js         # 应用入口文件,打包运行
├── .gitignore          # Git忽略配置
├── babel.config.js     # Babel配置
├── package.json        # 项目配置和依赖
├── package-lock.json   # 依赖版本锁定文件
└── README.md           # 项目说明文档

image-20250515141533658

# 组件化开发

一个页面可以拆分为一个个组件,每个组件有自己的结构、样式、行为

image-20250515141837933

# 组件结构

image-20250515142344857

# 组件

# 局部注册

只能在注册的组件内使用

  • components 目录下创建 .vue 组件,并设置结构、样式、行为

  • 在要使用的组件中导入注册

    注意必须大驼峰命名

    <script>
    	// 导入
        import BlogSidebar from './components/BlogSidebar.vue'
        import BlogNavbar from './components/BlogNavbar.vue'
        import ProfileSection from './components/ProfileSection.vue'
        import PostsSection from './components/PostsSection.vue'
        import NewPostSection from './components/NewPostSection.vue'
        export default {
            name: 'App',
            // 注册
            components: {
              '组件名': 组件对象						// 也可以直接写组件对象
              'BlogSidebar': BlogSiderbar			// BlogSiderbar
            },
        }
    </script>
  • 使用时直接当作 html 标签使用

    <组件名></组件对象>

# 全局注册

main.js 中进行全局注册

// 导入
import BlogSiderbar fron './components/BlogSiderbar.vue'
// 调用 Vue.component 进行全局注册
// Vue.component (' 组件名 ',组件对象)
Vue.component('BlogSiderbar',BlogSiderbar)

# 样式冲突 scoped

  • 默认组件中的样式是全局生效的

  • 可以给组件加上 scoped 属性,可以让样式只作用于当前组件

<style scoped>
	// ....
</style>

# data 是函数

保证每个组件,维护独立的一份数据对象

每次创建新的组件实例,都会执行一次 data 函数,得到一个新对象

image-20250515150702425

# 组件通信

组件的数据是独立的,无法直接访问其他组件的数据

image-20250515151035646

# 父子通信

image-20250515151254989

image-20250515151332965

image-20250515160055340

image-20250515160205124

# 插槽

# 默认插槽

image-20250515162157382

# 具名插槽

image-20250515162420600

# 作用域插槽

image-20250515164007017

image-20250515164052763

# 路由

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

CircleCoder 微信支付

微信支付

CircleCoder 支付宝

支付宝

CircleCoder 贝宝

贝宝