初始化建工程
vue create demo
进入demo里下载安装包
yarn add bootstrap less [email protected] axios
建立 vue.config.js
module.exports = {
devServer: {
open: true,
port: 8088 // 自己设置,cmd 同步显示到浏览器 yarn serve 运行
},
lintOnSave: false // 脚手架自带的eslint代码检查工具 - 先关闭
// publicPath: './'
}
Pannel.vue - 组件(直接复制)
芙蓉楼送辛渐
{{ isShow ? "收起" : "展开" }}
寒雨连江夜入吴,
平明送客楚山孤。
洛阳亲友如相问,
一片冰心在玉壶。
UserSlot.vue - 使用组件(==直接复制==)
案例:折叠面板
UseSlot.vue - 组件插槽使用
案例:折叠面板
我是内容
寒雨连江夜入吴,
平明送客楚山孤。
洛阳亲友如相问,
一片冰心在玉壶。
口诀:
默认内容
Pannel.vue - 留下具名slot
{{ isShow ? "收起" : "展开" }}
UseSlot.vue使用
案例:折叠面板
芙蓉楼送辛渐
我是内容
我是标题
寒雨连江夜入吴,
平明送客楚山孤。
洛阳亲友如相问,
一片冰心在玉壶。
口诀:
子组件, 在slot上绑定属性和子组件内的值
使用组件, 传入自定义标签, 用template和v-slot="自定义变量名"
scope变量名自动绑定slot上所有属性和值
Pannel.vue - 定义组件, 和具名插槽, 给slot绑定属性和值
芙蓉楼送辛渐
{{ isShow ? "收起" : "展开" }}
{{ defaultObj.defaultOne }}
UseSlot.vue
案例:折叠面板
{{ scope.row.defaultTwo }}
MyTable.vue - 模板(==直接复制==)
序号
姓名
年龄
头像
UseTable.vue - 准备数据, 传入给MyTable.vue组件里循环使用
list: [
{
name: "小传同学",
age: 18,
headImgUrl:
"http://yun.itheima.com/Upload/./Images/20210303/603f2d2153241.jpg",
},
{
name: "小黑同学",
age: 25,
headImgUrl:
"http://yun.itheima.com/Upload/./Images/20210304/6040b101a18ef.jpg",
},
{
name: "智慧同学",
age: 21,
headImgUrl:
"http://yun.itheima.com/Upload/./Images/20210302/603e0142e535f.jpg",
},
],
MyTable.vue - ==正确代码==
序号
姓名
年龄
头像
{{ index + 1 }}
{{ obj.name }}
{{ obj.age }}
{{ obj.headImgUrl}}
在UseTable使用MyTable的时候, template上v-slot绑定变量, 传入img组件设置图片地址
UseDirective.vue - 只能在当前组件.vue文件中使用
在main.js用 Vue.directive()方法来进行注册, 以后随便哪个.vue文件里都可以直接用v-fofo指令
// 全局指令 - 到处"直接"使用
Vue.directive("gfocus", {
inserted(el) {
el.focus() // 触发标签的事件方法
}
})
新建src/components/Add组件, 准备实现双向数据绑定
子组件库存: {{ value }}
在App.vue, 准备变量传入组件中
父组件库存: {{ count }}
count = val">
上午总结
App.vue
1.组件插槽使用
2.作用域插槽使用场景
3.自定义指令
4.v-model本质
./components/UseSlot
在 ./components/UseSlot 里面引入 ./Panel
{{ isShow ? "收起" : "展开" }}
恋恋剧中人
世界微尘里
{{ defaultObj.one }}
./components/UseTable
在 ./components/UseTable 里面引入 ./MyTable
序号
姓名
年龄
头像
{{ index + 1 }}
{{ obj.name }}
{{ obj.age }}
{{ obj.headImgUrl }}
./components/AddBtn
显示出来的图
cmd命令窗口
输入下载工程
vue create tabbar-demo
cd tabbar-demo 进入下载
yarn add bootstrap less [email protected] axios
yarn serve 运行代码
建立 vue.config.js
module.exports = {
devServer: {
open: true,
port: 8082
},
lintOnSave: false // 脚手架自带的eslint代码检查工具 - 先关闭
// publicPath: './'
}
main.js
import Vue from 'vue'
import App from './App.vue'
import "bootstrap/dist/css/bootstrap.css"
import "./assets/fonts/iconfont.css"
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')
App.vue
./components/MyHeader
{{ content }}
./components/MyTabBar
./views/MyGoodsList
#
商品名称
价格
标签
操作
{{ scope.row.id }}
{{ scope.row.goods_name }}
{{ scope.row.goods_price }}
../components/MyTable.vue
图例显示